<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 02:58:07 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[SERVER-1811] ARM support</title>
                <link>https://jira.mongodb.org/browse/SERVER-1811</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Since the upcoming social network Diaspora* uses mongodb as backend it would be nice to have it running on little home servers such as the Sheevaplug. As such servers are often based on ARM-architecture mongodb needs support for this.&lt;/p&gt;</description>
                <environment>Debian Squeeze, 2.6.32-5-kirkwood, Sheevaplug, ARMv5</environment>
        <key id="13125">SERVER-1811</key>
            <summary>ARM support</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="brian.mccarthy@mongodb.com">Brian McCarthy</assignee>
                                    <reporter username="mrzyx">Jonne Hass</reporter>
                        <labels>
                    </labels>
                <created>Sun, 19 Sep 2010 06:11:47 +0000</created>
                <updated>Mon, 11 Nov 2019 15:01:19 +0000</updated>
                            <resolved>Tue, 23 Aug 2016 19:38:42 +0000</resolved>
                                                    <fixVersion>3.3.11</fixVersion>
                                    <component>Build</component>
                                        <votes>93</votes>
                                    <watches>98</watches>
                                                                                                                <comments>
                            <comment id="1971418" author="acm" created="Thu, 9 Aug 2018 14:29:47 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=fredrik-svantesson&quot; class=&quot;user-hover&quot; rel=&quot;fredrik-svantesson&quot;&gt;fredrik-svantesson&lt;/a&gt; - If that is something you would like to see provided, would you mind opening a new ticket explicitly requesting it? This ticket is closed, and from a workflow perspective it is easier for us to evaluate and track such a request with an open ticket.&lt;/p&gt;</comment>
                            <comment id="1971007" author="fredrik-svantesson" created="Thu, 9 Aug 2018 00:51:11 +0000"  >&lt;p&gt;Are there any plans to provide up-to-date ARM binaries for Debian 9 as well?&lt;/p&gt;</comment>
                            <comment id="1365439" author="brian.mccarthy" created="Tue, 23 Aug 2016 19:09:58 +0000"  >&lt;p&gt;MongoDB is pleased to announce the 64-bit ARM development release for both its Community and Enterprise offerings. This encompasses the core server components including the shell, mongod and mongos processes, and the server tools.  ARM support will apply for Ubuntu 16.04 64-bit on ARMv8 or newer.&lt;/p&gt;

&lt;p&gt;Please note that only the WiredTiger storage engine is supported for the core server.  MMAPv1 will not be supported on ARM.&lt;/p&gt;

&lt;p&gt;The community edition of the &lt;a href=&quot;https://fastdl.mongodb.org/linux/mongodb-linux-arm64-ubuntu1604-3.3.11.tgz&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;binaries&lt;/a&gt; are now available on our &lt;a href=&quot;https://www.mongodb.com/download-center#community&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;downloads page&lt;/a&gt; for the latest 3.3.11 release.&lt;/p&gt;

&lt;p&gt;For customers requiring comprehensive support, advanced security features, and certifications, the Enterprise Evaluation Edition is available &lt;a href=&quot;https://www.mongodb.com/customer-evaluation-downloads-development-versions&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official ARM support will arrive with the MongoDB 3.4 GA.&lt;/p&gt;</comment>
                            <comment id="1249717" author="xgen-internal-githook" created="Thu, 28 Apr 2016 21:29:48 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;acmorrow&apos;, u&apos;name&apos;: u&apos;Andrew Morrow&apos;, u&apos;email&apos;: u&apos;acm@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-1811&quot; title=&quot;ARM support&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-1811&quot;&gt;&lt;del&gt;SERVER-1811&lt;/del&gt;&lt;/a&gt; Re-enable aarch64 support&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/9a94318cf5ea17ecc49d303409aa379aef204b5b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/9a94318cf5ea17ecc49d303409aa379aef204b5b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1149140" author="acm" created="Wed, 20 Jan 2016 20:34:38 +0000"  >&lt;p&gt;Hi All -&lt;/p&gt;

&lt;p&gt;Yes, there has been some progress on Aarch64, along with several other general portability improvements. That work is ongoing and incomplete, and is only available on the master branch, which is not suitable for production (the master branch is currently the source for the 3.3 development releases, which will eventually become the stable 3.4 release). Note that Aarch64 support is experimental, not currently slated to officially land in 3.4, and is not currently being actively developed or tested. However, you are welcome to experiment with it and we hope that you will report your findings.&lt;/p&gt;</comment>
                            <comment id="1148318" author="maestro_alubia" created="Wed, 20 Jan 2016 08:43:14 +0000"  >&lt;p&gt;Docker performs only container virtualization, meaning all docker containers are running on the Linux kernel of the host system, just isolated using Linux cgroups. So if your host system is ARM-based it can only run ARM-based containers or generally speaking: Docker can only run containers build for the same architecture as the host system.&lt;/p&gt;

&lt;p&gt;So Docker (and other container virtualization systems) do not help with this issue. What you need is full hardware virtualization &lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt;. A popular software of this category is QEMU which can for example emulate a x86 system on an ARM-based Linux. It should be able to run on Android too. But be aware that this full virtualization is very expensive in terms of resources and adds a lot of overhead to the software running inside of it. So you probably won&apos;t get the performance from MongoDB you would expect, especially on relatively low-end processors like the ones in smartphones.&lt;/p&gt;

&lt;p&gt;The only real solution is to add native ARM v8 support to MongoDB itself. More and more servers out there are using ARM architecture, so this is quite inevitable.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; &lt;a href=&quot;https://en.wikipedia.org/wiki/Hardware_virtualization&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://en.wikipedia.org/wiki/Hardware_virtualization&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1148306" author="dan@littlegenius.io" created="Wed, 20 Jan 2016 08:05:06 +0000"  >&lt;p&gt;Me too. My question was more for Mongodb dev team. But it looks feasible. Docker is basically a light weight container, which enable software to run software which has been packaged as docker regardless of the underlying hardware. This is similar in concept to virtualization but is more effective. If I understand correctly, you have basically 3 layers:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Software dockerised and platform independent-&lt;/li&gt;
	&lt;li&gt;Docker&lt;/li&gt;
	&lt;li&gt;Hardware / OS&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;In our case, I understand that MongoDB could be dockerised and therefore run on any docker compliant platform.&lt;br/&gt;
Is my understanding correct ?&lt;/p&gt;</comment>
                            <comment id="1148304" author="trusktr" created="Wed, 20 Jan 2016 07:57:06 +0000"  >&lt;p&gt;I&apos;m not too familiar with docker. Would I install docker and run that command from inside Android Linux?&lt;/p&gt;</comment>
                            <comment id="1148165" author="dan@littlegenius.io" created="Wed, 20 Jan 2016 02:30:27 +0000"  >&lt;p&gt;I wonder if docker can give an alternative to run MongoDB on ARM v7 (32 bit) and ARM v8 (Aarch64).&lt;br/&gt;
Can you confirm this is viable ?&lt;br/&gt;
&lt;a href=&quot;https://hub.docker.com/r/partlab/ubuntu-arm-mongodb/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://hub.docker.com/r/partlab/ubuntu-arm-mongodb/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1148162" author="trusktr" created="Wed, 20 Jan 2016 02:21:49 +0000"  >&lt;p&gt;Any progress on this? I&apos;d really like to get Meteor running on my Nexus 6P Android phone (AArch64).&lt;/p&gt;</comment>
                            <comment id="1021526" author="acm" created="Thu, 3 Sep 2015 14:03:26 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=dan%40littlegenius.io&quot; class=&quot;user-hover&quot; rel=&quot;dan@littlegenius.io&quot;&gt;dan@littlegenius.io&lt;/a&gt; - Please note that official support for ARM v7 is unlikely. The MMAPv1 storage engine is limited to ~1GB of journaled data on 32-bit systems, and the WiredTiger storage engine is 64-bit only. Effectively, this means that any future ARM port will only target Aarch64.&lt;/p&gt;
</comment>
                            <comment id="1021310" author="dan@littlegenius.io" created="Thu, 3 Sep 2015 04:40:26 +0000"  >&lt;p&gt;With the strong trend of ARM microserver in the cloud space (see ovh, scaleway, HP, datacentred,...) with low TCO, support of ARM v7 and v8 is very welcome. +10. Really looking forward to it.&lt;/p&gt;</comment>
                            <comment id="968773" author="radamanth" created="Fri, 17 Jul 2015 14:29:49 +0000"  >&lt;p&gt;Thanks ! Looking forward to it &lt;/p&gt;</comment>
                            <comment id="967779" author="kim3er" created="Thu, 16 Jul 2015 14:43:30 +0000"  >&lt;p&gt;Thanks @Andrew, that really good news!&lt;/p&gt;</comment>
                            <comment id="967752" author="acm" created="Thu, 16 Jul 2015 14:16:15 +0000"  >&lt;p&gt;Hi All -&lt;/p&gt;

&lt;p&gt;Earlier this week, a major roadblock for portability to non-x86 platforms was resolved. For some time, we have been stuck using an old version of the V8 Javascript interpreter because newer V8 versions removed critical memory management facilities that we depended on to constrain resource utilization during server side Javascript execution. While newer versions of V8 had added ARM support, the version on which we were pinned did not have those changes. However, on Tuesday, we &lt;a href=&quot;https://github.com/mongodb/mongo/commit/e749ffad9b4fe3110d97f366ebe39e7c9a4edd9d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;committed experimental support for building with SpiderMonkey&lt;/a&gt;. SpiderMonkey both provides the resource management facilities that we require, and we anticipate, though have not yet confirmed, that it will not represent a barrier to portability like old V8 engine did.&lt;/p&gt;

&lt;p&gt;The next development release, 3.1.6, will contain the new SpiderMonkey interpreter as an opt-in, however, our initial integration will only have build information encoded for how to target x86. If you are interested in trying to build with SpiderMonkey on other platforms, please reach out to the development team on &lt;a href=&quot;https://groups.google.com/forum/#!forum/mongodb-dev&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;mongodb-dev&lt;/a&gt; and we can provide guidance on how to configure SpiderMonkey on those platforms, or for any other portability issues. To build with the new interpreter, invoke scons with the --js-engine=mozjs flag.&lt;/p&gt;

&lt;p&gt;Please note that currently we only officially target, test, and release for x86, and we are aware of latent endian, aliasing, and alignment issues in the codebase in general, and in the storage engines in particular. These issues may or may not adversely affect ports to other processors, depending on their endianness and sensitivity to alignment. We are working to resolve these issues, however fixing them is not an explicit release goal for the upcoming 3.2 stable. Additionally, there are likely to be issues with the build system, which has not been well tested on non-x86 systems.&lt;/p&gt;

&lt;p&gt;For examples of some of these types of issues, please see &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-19427&quot; title=&quot;CheckForToolchain SCons utility doesn&amp;#39;t work on ARM or SPARC&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-19427&quot;&gt;&lt;del&gt;SERVER-19427&lt;/del&gt;&lt;/a&gt;, &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-19430&quot; title=&quot;Definition of maxKey and minKey BSONObj objects is not endian clean&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-19430&quot;&gt;&lt;del&gt;SERVER-19430&lt;/del&gt;&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-19431&quot; title=&quot;The mongo::hasher algorithm is not endian clean&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-19431&quot;&gt;&lt;del&gt;SERVER-19431&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="966532" author="radamanth" created="Wed, 15 Jul 2015 12:01:03 +0000"  >&lt;p&gt;Same goes for me.&lt;br/&gt;
Arm support would be great ! &lt;br/&gt;
I look forward to it, it would open some new possibilities for my vps choice.  &lt;br/&gt;
The lack of arm support was the only red flag for me to go to a better cloud vps hosting &lt;/p&gt;</comment>
                            <comment id="966244" author="gorbush" created="Tue, 14 Jul 2015 23:14:16 +0000"  >&lt;p&gt;I would like to have the support of not only Raspberry - but some NAS servers as well - for example Netgear ReadyNAS 104.&lt;br/&gt;
It has a lot of applications right now, like PHP, Python, MySQL and so on...&lt;br/&gt;
&lt;a href=&quot;http://apps.readynas.com/pages/?page_id=9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://apps.readynas.com/pages/?page_id=9&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It would be nice to have mongoDB as well.&lt;/p&gt;</comment>
                            <comment id="958097" author="gbfromhb" created="Mon, 6 Jul 2015 03:16:31 +0000"  >&lt;p&gt;It has been nearly a year now. Any word on when we will  be able to run MongoDB on a Raspberry PI without jumping through hopes. With all the Internet of Things talk I&apos;m surprised this has not become a higher priority. A Mean stack on a Raspberry PI seems like a great solution.&lt;/p&gt;</comment>
                            <comment id="680707" author="acm" created="Mon, 4 Aug 2014 16:22:52 +0000"  >&lt;p&gt;Hi All -&lt;/p&gt;

&lt;p&gt;Here is a quick update on the status of ARM support. There are a number of projects under way, but a significant amount of work remains:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Removing x86 assumptions so the codebase is processor neutral: We are making incremental progress here. In particular, we have refactored the use of atomic integers in a large subset of the codebase to use portable compiler intrinsics, and we intend to remove the remaining non-portable instances soon. We are also working on a more general portability enhancement that will improve our behavior with respect to endian conversions, alignment restrictions, and C/C++ aliasing rules, which should enhance our portability not just to ARM, but to other non-x86 platforms (see &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-6018&quot; title=&quot;Replace AtomicUInt with AtomicUInt32&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-6018&quot;&gt;&lt;del&gt;SERVER-6018&lt;/del&gt;&lt;/a&gt;, &lt;a href=&quot;https://jira.mongodb.org/browse/CXX-49&quot; title=&quot;Fix strict aliasing warnings so that headers are useable for all consumers&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CXX-49&quot;&gt;&lt;del&gt;CXX-49&lt;/del&gt;&lt;/a&gt;).&lt;/li&gt;
	&lt;li&gt;JavaScript interpreter support: We vendor in a copy of the v8 JS interpreter, so the set of systems MongoDB supports is necessarily a subset of the systems that v8 supports. The version of v8 that we currently use by default does not support ARM. A newer version, which does support ARM, has been is made available under a build option. However, the new incarnation of memory management in V8 is incompatible with running the javascript interpreter and database engine in the same process.  This incompatibility will require a ground-up rewrite of javascript support, including improved support for managing subprocesses.  It is a large project, and it is not yet fully scoped.&lt;/li&gt;
	&lt;li&gt;Testing and validation: We do extensive integration and regression testing on many x86 systems (see &lt;a href=&quot;https://mci.10gen.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://mci.10gen.com&lt;/a&gt;). For us to declare ARM an officially supported platform we need to establish and maintain a similar testing infrastructure for ARM systems. We are working with our partners in this space to gain experience with ARM and eventually develop the necessary testing infrastructure.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Until we have completed the above projects, ARM will remain unsupported. However, we are interested in offering MongoDB on ARM, and progress is being made on all of the above projects.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br/&gt;
Andrew&lt;/p&gt;</comment>
                            <comment id="680511" author="ppafford" created="Mon, 4 Aug 2014 13:19:42 +0000"  >&lt;p&gt;would also like a Debian solution as well, thanks!&lt;/p&gt;</comment>
                            <comment id="679663" author="kostyuk" created="Sat, 2 Aug 2014 19:42:14 +0000"  >&lt;p&gt;I&apos;m checking for same, trying to build Mongo on Raspberry Pi B+ equipped with ARMv6.&lt;br/&gt;
It seems there is fix for the problem but in another repository. The fix is implemented well for Arch Linux.&lt;br/&gt;
&lt;a href=&quot;http://archlinuxarm.org/packages?search=mongodb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://archlinuxarm.org/packages?search=mongodb&lt;/a&gt;&lt;br/&gt;
And it is working.&lt;br/&gt;
&lt;a href=&quot;http://andyfelong.com/2014/07/mongodb-2-6-and-nodejs-10-29-on-raspberry-pi-oh-joy/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://andyfelong.com/2014/07/mongodb-2-6-and-nodejs-10-29-on-raspberry-pi-oh-joy/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="675428" author="ppafford" created="Tue, 29 Jul 2014 19:26:41 +0000"  >&lt;p&gt;How can we get this implemented? There is a growing need for this&lt;/p&gt;</comment>
                            <comment id="532416" author="milkie" created="Wed, 2 Apr 2014 11:48:40 +0000"  >&lt;p&gt;Olivier, &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-12283&quot; title=&quot;Use gcc atomic builtins if available on IA-32 and x86_64&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-12283&quot;&gt;&lt;del&gt;SERVER-12283&lt;/del&gt;&lt;/a&gt; is not related to ARM support.  Did you mean to say &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-12064&quot; title=&quot;AtomicIntrinsics is not portable&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-12064&quot;&gt;&lt;del&gt;SERVER-12064&lt;/del&gt;&lt;/a&gt;?  That ticket improved MongoDB portability including on ARM platforms.&lt;/p&gt;</comment>
                            <comment id="532336" author="olouv" created="Wed, 2 Apr 2014 09:53:43 +0000"  >&lt;p&gt;Looks like this port is in standby, last activity was 3 weeks ago and &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-12283&quot; title=&quot;Use gcc atomic builtins if available on IA-32 and x86_64&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-12283&quot;&gt;&lt;del&gt;SERVER-12283&lt;/del&gt;&lt;/a&gt; is still unassigned.&lt;br/&gt;
Meanwhile, RethinkDB has added ARM support in their last release (cf. &lt;a href=&quot;http://rethinkdb.com/blog/1.12-release/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://rethinkdb.com/blog/1.12-release/&lt;/a&gt;).&lt;br/&gt;
I think it&apos;s about time that MongoDB ships an ARM version.&lt;/p&gt;</comment>
                            <comment id="530963" author="b.dheure" created="Tue, 1 Apr 2014 15:22:06 +0000"  >&lt;p&gt;Hi guys ...&lt;br/&gt;
I&apos;m new here, and I have to run Unifi controller on an Allwinner A20 board (so ARM-cortex-a7 processor) for my internship. I found this topic and the diff files, but I really don&apos;t know to which sources I have to apply these diff.&lt;/p&gt;

&lt;p&gt;Someone here could help me ? &lt;br/&gt;
Every project about mongoDB on ARM I found are at least 2 years old... &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/sad.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; But I&apos;m expecting to find some patches for a 2.x version of MongoDB.&lt;/p&gt;

&lt;p&gt;Thank you with advance &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="485269" author="pawel sledzikowski" created="Tue, 21 Jan 2014 22:26:29 +0000"  >&lt;p&gt;@Matt Thompson,&lt;/p&gt;

&lt;p&gt;Many thanks for your binary package of MongoDB for arm7l architecture. I&apos;m confirming it appears to be working for me although I haven&apos;t done any reasonable testing yet (at least it starts correctly).&lt;/p&gt;

&lt;p&gt;Hardware: MK908II with PicUntu 4.5 on board.&lt;/p&gt;

&lt;p&gt;On the other hand, I tried to compile your fork from a scratch (source) but no dice. Same thing with other Mongo forks for ARM architecture: &lt;a href=&quot;https://github.com/skrabban/mongo-nonx86&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/skrabban/mongo-nonx86&lt;/a&gt; and &lt;a href=&quot;https://github.com/RickP/mongopi&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/RickP/mongopi&lt;/a&gt; (although they&apos;re working perfectly fine for RaspberryPi hardware - I have tested it).&lt;/p&gt;

&lt;p&gt;Error:&lt;br/&gt;
&quot;AssertionError: Unsupported architecture: armv7l&quot;&lt;/p&gt;

&lt;p&gt;Glad to see working MongoDB on ARM processor.&lt;/p&gt;</comment>
                            <comment id="459002" author="secesh" created="Wed, 20 Nov 2013 14:10:40 +0000"  >&lt;p&gt;It&apos;s way past time to support ARM.&lt;br/&gt;
&lt;a href=&quot;http://www.pcworld.com/article/2064940/ubuntu-linux-server-with-arm-processor-rolled-out-by-boston-limited.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://www.pcworld.com/article/2064940/ubuntu-linux-server-with-arm-processor-rolled-out-by-boston-limited.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;get on the ball already.&lt;/p&gt;</comment>
                            <comment id="446463" author="yigits" created="Thu, 24 Oct 2013 23:49:33 +0000"  >&lt;p&gt;Has anyone tried building and running on Odroids, specifically on odroid-u2&apos;s?&lt;/p&gt;</comment>
                            <comment id="440730" author="phatzer" created="Tue, 15 Oct 2013 07:46:12 +0000"  >&lt;p&gt;This is definitely something I&apos;d like to see introduced.&lt;/p&gt;</comment>
                            <comment id="385293" author="hlfh" created="Sat, 20 Jul 2013 07:41:00 +0000"  >&lt;p&gt;Why do you use MongoDB if they don&apos;t have ARM support ? Boycott&lt;/p&gt;</comment>
                            <comment id="330248" author="trukhinyuri" created="Tue, 7 May 2013 14:48:00 +0000"  >&lt;p&gt;very need arm version, works in raspberry pi&lt;/p&gt;</comment>
                            <comment id="313415" author="plustek" created="Mon, 15 Apr 2013 03:47:33 +0000"  >&lt;p&gt;@Matt Thompson, when cross compiling the MongoDB 2.4.1 with V8 for armv7-a cortex-a9, I have encountered following problem: &lt;/p&gt;

&lt;p&gt;Assembler Message: &lt;br/&gt;
selected processor does not support `dmb&apos; &lt;/p&gt;

&lt;p&gt;have you encountered any similar issue?&lt;/p&gt;

&lt;p&gt;Rob&lt;/p&gt;</comment>
                            <comment id="308658" author="mthompson" created="Mon, 8 Apr 2013 16:36:54 +0000"  >&lt;p&gt;I&apos;ve successfully patched MongoDB 2.4.1 with V8 for armv7l (Cortex A15) on a Chromebook running Ubuntu 13.04. I have not done extensive testing nor checked the correctness of the quick patches to the platform specific atomic operations.&lt;/p&gt;

&lt;p&gt;git clone -b v2.4.1 &lt;a href=&quot;https://github.com/wtfuzz/mongo-arm&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/wtfuzz/mongo-arm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A binary package is available from: &lt;a href=&quot;https://s3.amazonaws.com/wtfuzz/mongo-arm/mongodb-linux-armv7l-2.4.1.tgz&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://s3.amazonaws.com/wtfuzz/mongo-arm/mongodb-linux-armv7l-2.4.1.tgz&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="204985" author="nipun_batra" created="Mon, 3 Dec 2012 06:52:28 +0000"  >&lt;p&gt;I ran out of space while building MongoDB &lt;a href=&quot;https://github.com/skrabban/mongo-nonx86&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/skrabban/mongo-nonx86&lt;/a&gt; on Plug Computer (Ionics Stratus), which has only 512 MB flash. Can i build it on some other system specifying target as ARM for Plug Computer and then just transfer that to the Plug Computer?&lt;/p&gt;</comment>
                            <comment id="154685" author="tlturner" created="Sun, 19 Aug 2012 01:19:27 +0000"  >&lt;p&gt;I was able to to get mongo v2.1.1 installed on the Raspberry Pi Using the help listed here form soywiz. I am working on getting a more stable version installed on the pi v2.0.7. I have been working with Arch Linux Arm. The issues with 2.0.7 have been with boost. Also, I attempted to install v2.2.0 however there was to much inline asm to covert from x86 to arm. I don&apos;t know enough about assembly to convert for different architecture types. For ARMv5 in Arch Linux Arm with boost 1.5.0 and mongodb v2.1.1 it was a matter of converting all instances if UTC_TIME to UTC_TIME_ for boost and adding another line of code in to atomic_int.h for asm memory barrier for AtomicUInt::SET function.&lt;/p&gt;

&lt;p&gt;Tim&lt;/p&gt;</comment>
                            <comment id="149620" author="tlturner" created="Wed, 1 Aug 2012 20:32:05 +0000"  >&lt;p&gt;So, has Mongodb 2.x been successfully installed on ARMv5? In my case I am using Raspberry Pi. I added the patch to atomic_int.h and have passed that error however it failed at another point. I am using ArchLinuxArm and I don&apos;t mind switching to debian if that is working.&lt;/p&gt;

&lt;p&gt;Thanks.&lt;/p&gt;</comment>
                            <comment id="132278" author="mauriciootta" created="Thu, 14 Jun 2012 02:13:39 +0000"  >&lt;p&gt;include me wanting these with my 4 pogo plugs and ArchLinux ARM&lt;/p&gt;</comment>
                            <comment id="131357" author="kev" created="Tue, 12 Jun 2012 22:41:26 +0000"  >&lt;p&gt;You may want to add the raspberry pi to the environment. Also the debian guys seem to have a working port. How about e.g. ArchLinuxArm?&lt;/p&gt;</comment>
                            <comment id="110772" author="skrabban" created="Tue, 17 Apr 2012 18:17:25 +0000"  >&lt;p&gt;@Jonathan Baldwin&lt;br/&gt;
It will on debian at least, but xulrunner must not be 2.x.&lt;/p&gt;</comment>
                            <comment id="110449" author="jrbaldwin" created="Mon, 16 Apr 2012 22:15:01 +0000"  >&lt;p&gt;Does the &quot;mongo-nonx86&quot; project on github actually compile and run on ARM chipsets? I have a plug server with Debian on it that I need to run Mongo on...will it work if I pull v1.8 and compile directly onto the plug?&lt;/p&gt;</comment>
                            <comment id="108706" author="milkie" created="Wed, 11 Apr 2012 14:42:12 +0000"  >&lt;p&gt;As a rule, we only backport as necessary to fix bugs.  Since mongo ARM is experimental, using a development version should be no detriment.&lt;/p&gt;</comment>
                            <comment id="108641" author="janimo" created="Wed, 11 Apr 2012 08:54:17 +0000"  >&lt;p&gt;Would it make sense to backport the 3 git commits that fix ARM support to the 2.0 branch?&lt;/p&gt;</comment>
                            <comment id="107434" author="janimo" created="Fri, 6 Apr 2012 19:55:14 +0000"  >&lt;p&gt;current master should build and run on armv7/linux at least.&lt;/p&gt;</comment>
                            <comment id="106694" author="janimo" created="Wed, 4 Apr 2012 20:31:47 +0000"  >&lt;p&gt;Patch updated against current master, where the atomic counters issue is solved now.&lt;/p&gt;</comment>
                            <comment id="106491" author="janimo" created="Wed, 4 Apr 2012 14:46:33 +0000"  >&lt;p&gt;Brian,&lt;br/&gt;
I have just uploaded mongo 2.0.4 with ARM support in Ubuntu precise, you can use that on the beagleboard.&lt;/p&gt;</comment>
                            <comment id="106359" author="skrabban" created="Wed, 4 Apr 2012 05:40:31 +0000"  >&lt;p&gt;@Brian Hutchinson&lt;/p&gt;

&lt;p&gt;git clone &lt;a href=&quot;https://github.com/skrabban/mongo-nonx86&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/skrabban/mongo-nonx86&lt;/a&gt; +v1.8&lt;/p&gt;

&lt;p&gt;It is version 1.8-someting, but is reported to work.&lt;/p&gt;</comment>
                            <comment id="106236" author="hutchman" created="Tue, 3 Apr 2012 20:56:11 +0000"  >&lt;p&gt;OK, I gave up on my idea to cross compile MongoDB for ARM.  Sounds like most are native building it so I setup a BeagleBoard xM with headless Ubuntu and have all the required packages installed to start building mongo.  Which repo should I clone to have the best success of seeing something run on the ARM?  I don&apos;t care at this point if it is ARMv5 or ARMv7, I just want to see something run.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;Brian&lt;/p&gt;</comment>
                            <comment id="106200" author="skrabban" created="Tue, 3 Apr 2012 20:00:20 +0000"  >&lt;p&gt;Here is a patch to properly detect fetch and add in scons:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;diff --git a/SConstruct b/SConstruct&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;index cb25b64..2db1329 100644&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;--- a/SConstruct&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+++ b/SConstruct&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;@@ -749,8 +749,24 @@ env.Append( CPPPATH=[&apos;$EXTRACPPPATH&apos;],&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; # --- check system ---&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+def CheckFetchAndAdd( context ):&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+    context.Message( &apos;Checking for __sync_fetch_and_add ...&apos; )&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+    res = context.TryLink( &quot;&quot;&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+          int main()&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+          {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+            int x;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+            __sync_fetch_and_add(&amp;amp;x, 1);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+            __sync_add_and_fetch(&amp;amp;x, 1);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+            return 0;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+          }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+&quot;&quot;&quot;, &quot;.cc&quot; )&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+    context.Result( res )&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+    return res&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; def doConfigure(myenv):&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;-    conf = Configure(myenv)&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+    conf = Configure(myenv, custom_tests = {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+        &apos;CheckFetchAndAdd&apos; : CheckFetchAndAdd,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+        } )&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;     if &apos;CheckCXX&apos; in dir( conf ):&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;         if  not conf.CheckCXX():&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;@@ -795,6 +811,10 @@ def doConfigure(myenv):&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;         if not conf.CheckLib(&quot;execinfo&quot;):&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;             Exit(1)&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; &lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+    # Look for __sync_add_and_fetch and __sync_fetch_and_add&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+    if conf.CheckFetchAndAdd():&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+        env.Append( CPPDEFINES = [&quot;HAVE_SYNC_FETCH_AND_ADD&quot;] )&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;     # &apos;tcmalloc&apos; needs to be the last library linked. Please, add new libraries before&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;     # point.&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;     if has_option(&quot;tcmalloc&quot;) or has_option(&quot;heapcheck&quot;):&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;diff --git a/src/mongo/bson/util/atomic_int.h b/src/mongo/bson/util/atomic_int.h&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;index d3c2bb7..70abb78 100644&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;--- a/src/mongo/bson/util/atomic_int.h&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+++ b/src/mongo/bson/util/atomic_int.h&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;@@ -62,7 +62,7 @@ namespace mongo {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;         InterlockedAdd((volatile long *)&amp;amp;x,by);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;     }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; # endif&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;-#elif defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;+#elif defined(HAVE_SYNC_FETCH_AND_ADD)&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;     // this is in GCC &amp;gt;= 4.1&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;     inline void AtomicUInt::zero() { x = 0; } // TODO: this isn&apos;t thread safe - maybe&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;     AtomicUInt AtomicUInt::operator++() {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;</comment>
                            <comment id="105213" author="janimo" created="Fri, 30 Mar 2012 15:34:47 +0000"  >&lt;p&gt;BTW, are the pthread splinlocks better than the ones using gcc atomics, as they seem to be picked with higher prio?&lt;/p&gt;</comment>
                            <comment id="105211" author="janimo" created="Fri, 30 Mar 2012 15:32:26 +0000"  >&lt;p&gt;Using this unpolished patch I got the smoketests passing on ARMv7/Ubuntu&lt;/p&gt;

&lt;p&gt;1) Intel asm code in spinlocks implementation: do the glibs and gcc atomics not generate optimal code in this case so that the extra pause is needed? Worst case this can be ifdeffed out under _&lt;em&gt;X86&lt;/em&gt;_&lt;/p&gt;

&lt;p&gt;2)Alignment traps on ARM when accessing doubles: a lot of ugly code to use packed struct instead of direct doubles. I did not even attempt to figure out what a cleaner solution should be, the mongo devs surely have suggestions.&lt;/p&gt;

&lt;p&gt;3) The counters which if atomic ints are also generating alignment traps on ARM. There should be a cleaner solution as mentioned here&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/pull/198&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/pull/198&lt;/a&gt;&lt;br/&gt;
but I have yet to get around to doing that.&lt;/p&gt;

&lt;p&gt;This patch is against the current master branch (2.1)&lt;/p&gt;</comment>
                            <comment id="104476" author="schwerin" created="Wed, 28 Mar 2012 20:33:06 +0000"  >&lt;p&gt;For the time being, Mongo on the ARM should be considered unsupported and experimental.&lt;/p&gt;</comment>
                            <comment id="104471" author="hutchman" created="Wed, 28 Mar 2012 20:19:01 +0000"  >&lt;p&gt;So are you saying that Mongo will run OK compiled for ARMv5 but not ARMv7?  The Cortex A8 is binary compatible with both so while not optimal, running with ARMv5 is better than nothing!&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;Brian&lt;/p&gt;</comment>
                            <comment id="97680" author="soywiz" created="Mon, 12 Mar 2012 01:04:43 +0000"  >&lt;p&gt;I&apos;m not sure why is this happening, but it spits the &quot;unsupported compiler or platform&quot; on tonido-plug arch linux even when it has GCC 4.6.2. I have tried and it has the __sync_fetch_and_add and __sync_add_and_fetch macros.&lt;/p&gt;

&lt;p&gt;So maybe it could be replaced to:&lt;br/&gt;
#elif defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)&lt;br/&gt;
-&amp;gt;&lt;br/&gt;
#elif defined(_&lt;em&gt;GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) || (defined(&lt;/em&gt;&lt;em&gt;sync_add_and_fetch) &amp;amp;&amp;amp; defined(&lt;/em&gt;_sync_fetch_and_add))&lt;/p&gt;

&lt;p&gt;-------&lt;/p&gt;

&lt;p&gt;And about the previous patch, this is the right one:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&amp;nbsp;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;#elif defined(__ARMEL__) || defined(__ARM_ARCH_5T__) || defined(__ARM_PCS) || defined(__ARM_EABI__)&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&amp;nbsp;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;#define arm_atomic_add_inline(ptr, val) \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;     ({ register unsigned int *__ptr asm(&quot;r2&quot;) = (ptr); \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        register unsigned int __result asm(&quot;r1&quot;); \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        asm volatile ( \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            &quot;1: @ atomic_add\n\t&quot; \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            &quot;ldr     r0, [r2]\n\t&quot; \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            &quot;mov     r3, #0xffff0fff\n\t&quot; \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            &quot;add     lr, pc, #4\n\t&quot; \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            &quot;add     r1, r0, %2\n\t&quot; \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            &quot;add     pc, r3, #(0xffff0fc0 - 0xffff0fff)\n\t&quot; \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            &quot;bcc     1b&quot; \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            : &quot;=&amp;amp;r&quot; (__result) \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            : &quot;r&quot; (__ptr), &quot;rIL&quot; (val) \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            : &quot;r0&quot;,&quot;r3&quot;,&quot;ip&quot;,&quot;lr&quot;,&quot;cc&quot;,&quot;memory&quot; ); \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        __result; })&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&amp;nbsp;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    inline void AtomicUInt::zero() { x = 0; } // TODO: this isn&apos;t thread safe&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&amp;nbsp;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;	#define atomic_int_helper(ptr, val) \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;		(arm_atomic_add_inline(ptr, (val)) - (val))&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&amp;nbsp;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;	AtomicUInt AtomicUInt::operator++() {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        return atomic_int_helper((unsigned *)&amp;amp;x, 1)+1;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    AtomicUInt AtomicUInt::operator++(int) {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        return atomic_int_helper((unsigned *)&amp;amp;x, 1);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    AtomicUInt AtomicUInt::operator--() {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        return atomic_int_helper((unsigned *)&amp;amp;x, -1)-1;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    AtomicUInt AtomicUInt::operator--(int) {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        return atomic_int_helper((unsigned *)&amp;amp;x, -1);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;#else&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;#  error &quot;unsupported compiler or platform&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;#endif&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;</comment>
                            <comment id="97678" author="soywiz" created="Mon, 12 Mar 2012 00:36:54 +0000"  >&lt;p&gt;(Not tested yet). But a patch for the atomic increment could be something like this:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;// gcc -dM -E - &amp;lt; /dev/null | grep ARM&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;// http://lwn.net/Articles/314561/&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;#elif defined(__ARMEL__) || defined(__ARM_ARCH_5T__) || defined(__ARM_PCS) || defined(__ARM_EABI__)&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&amp;nbsp;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;#define arm_atomic_add_inline(ptr, val) \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;     ({ register unsigned int *__ptr asm(&quot;r2&quot;) = (ptr); \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        register unsigned int __result asm(&quot;r1&quot;); \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        asm volatile ( \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            &quot;1: @ atomic_add\n\t&quot; \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            &quot;ldr     r0, [r2]\n\t&quot; \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            &quot;mov     r3, #0xffff0fff\n\t&quot; \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            &quot;add     lr, pc, #4\n\t&quot; \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            &quot;add     r1, r0, %2\n\t&quot; \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            &quot;add     pc, r3, #(0xffff0fc0 - 0xffff0fff)\n\t&quot; \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            &quot;bcc     1b&quot; \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            : &quot;=&amp;amp;r&quot; (__result) \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            : &quot;r&quot; (__ptr), &quot;rIL&quot; (val) \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            : &quot;r0&quot;,&quot;r3&quot;,&quot;ip&quot;,&quot;lr&quot;,&quot;cc&quot;,&quot;memory&quot; ); \&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        __result; })&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&amp;nbsp;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    inline void AtomicUInt::zero() { x = 0; } // TODO: this isn&apos;t thread safe&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    // from boost 1.39 interprocess/detail/atomic.hpp&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    inline unsigned atomic_int_helper(volatile unsigned *x, int val) {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        int r = arm_atomic_add_inline(x, val) - val;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        return r;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    AtomicUInt AtomicUInt::operator++() {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        return atomic_int_helper(&amp;amp;x, 1)+1;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    AtomicUInt AtomicUInt::operator++(int) {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        return atomic_int_helper(&amp;amp;x, 1);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    AtomicUInt AtomicUInt::operator--() {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        return atomic_int_helper(&amp;amp;x, -1)-1;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    AtomicUInt AtomicUInt::operator--(int) {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        return atomic_int_helper(&amp;amp;x, -1);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;#else&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;#  error &quot;unsupported compiler or platform&quot;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;#endif&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;</comment>
                            <comment id="97677" author="soywiz" created="Mon, 12 Mar 2012 00:30:39 +0000"  >&lt;p&gt;This could be useful:&lt;br/&gt;
&lt;a href=&quot;http://lwn.net/Articles/314561/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://lwn.net/Articles/314561/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On my TonidoPlug:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;root@TonidoPlug ~&amp;#93;&lt;/span&gt;# gcc -dM -E - &amp;lt; /dev/null | grep ARM&lt;br/&gt;
#define _&lt;em&gt;ARMEL&lt;/em&gt;_ 1&lt;br/&gt;
#define _&lt;em&gt;ARM_ARCH_5T&lt;/em&gt;_ 1&lt;br/&gt;
#define __ARM_PCS 1&lt;br/&gt;
#define _&lt;em&gt;ARM_EABI&lt;/em&gt;_ 1&lt;/p&gt;</comment>
                            <comment id="94174" author="janimo" created="Thu, 1 Mar 2012 16:05:27 +0000"  >&lt;p&gt;With this patch the BSON tests called on starting either mongo or mongod pass. They SIGBUS otherwise on ARMv7/Ubuntu due to unaligned access to floating point values.&lt;/p&gt;

&lt;p&gt;The explicit signed char fixes another crash later on - char is signed by default on ARM.&lt;/p&gt;

&lt;p&gt;I still need to see why the smoketests fail.&lt;/p&gt;</comment>
                            <comment id="94018" author="coolaj86" created="Thu, 1 Mar 2012 02:38:06 +0000"  >&lt;p&gt;I would be willing to send a raspberry pi to you for testing if you need the hardware.&lt;/p&gt;

&lt;p&gt;I think raspberry pi will very quickly become the most popular of all the dev boards (unless it&apos;s a total flop).&lt;/p&gt;</comment>
                            <comment id="91650" author="hutchman" created="Thu, 23 Feb 2012 23:35:35 +0000"  >&lt;p&gt;Well I think this is interesting .... of TI&apos;s BeagleBoard variant, there are almost 60K boards floating around now (ARM Cortex A8) and the new BeagleBone (also Cortex A8) is already up to 20K!  This doesn&apos;t include Panda, Raspberry Pi (the first 10K batch will be released in a week or two) and all the other nice ARM boards out there that could be running MongoDB and exposing it in the embedded space &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="91237" author="eliot" created="Thu, 23 Feb 2012 06:31:02 +0000"  >&lt;p&gt;Its currently not officially supported.&lt;/p&gt;

&lt;p&gt;Some bi-endian systems work today, but we don&apos;t have good test beds for those.&lt;/p&gt;

&lt;p&gt;If people know of configs that are interesting, we would be interested in adding some more build machines.&lt;/p&gt;</comment>
                            <comment id="91205" author="hutchman" created="Thu, 23 Feb 2012 02:26:32 +0000"  >&lt;p&gt;Hi, I&apos;d like to understand the issues of building MongoDB for ARM.  More specifically .... ARM Cortex A8 with gcc 4.6.  I guess I don&apos;t fully understand the status of MongoDB on ARM.&lt;/p&gt;</comment>
                            <comment id="54391" author="skrabban" created="Thu, 15 Sep 2011 10:55:55 +0000"  >&lt;p&gt;@Dwight Merriman Atomic int is not a problem, it is just the #ifdef that doesn&apos;t work. See mongo-nonx86 for a SCons based test.&lt;/p&gt;

&lt;p&gt;Changing the test is enough to compile, but differences in char signedness will cause other problems when running. The ones I have found have been fixed in mongo-nonx86.&lt;/p&gt;</comment>
                            <comment id="53459" author="dwight_10gen" created="Mon, 12 Sep 2011 16:18:41 +0000"  >&lt;p&gt;if atomic int is a problem just use a mutex instead.  i will try to add that to AtomicUInt class sometime but a lot of other work in queue unfortunately!&lt;/p&gt;

&lt;p&gt;something like (pseudocode):&lt;/p&gt;

&lt;p&gt;mongo::mutex atomicMutex(&quot;atomic&quot;);&lt;/p&gt;

&lt;p&gt;void inc() { &lt;br/&gt;
 scoped_lock lk(atomicMutex);&lt;br/&gt;
 x++;&lt;br/&gt;
}&lt;/p&gt;

</comment>
                            <comment id="50196" author="wpjunior" created="Tue, 23 Aug 2011 18:53:00 +0000"  >&lt;p&gt;someone managed to compile for the android?&lt;/p&gt;</comment>
                            <comment id="49722" author="jimmy00784" created="Sat, 20 Aug 2011 22:38:53 +0000"  >&lt;p&gt;@Per Ola Ingvarsson: It works. Tested on Debian Squeeze on Pogoplug which has armv5tel  &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; Thanks&lt;/p&gt;</comment>
                            <comment id="48480" author="skrabban" created="Sat, 13 Aug 2011 21:53:25 +0000"  >&lt;p&gt;It would be nice if someone with real ARM hardware could try this out:&lt;/p&gt;

&lt;p&gt;git clone &lt;a href=&quot;https://github.com/skrabban/mongo-nonx86&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/skrabban/mongo-nonx86&lt;/a&gt; +v1.8&lt;/p&gt;

&lt;p&gt;Should compile out of the box on debian/armel and detect that armv5 needs special care with the alignment of data. Passes the tests in ./test on qemu, but qemu doesn&apos;t implement the alignment traps. Otoh, it also runs on sparc wich is very picky in that aspect.&lt;/p&gt;</comment>
                            <comment id="41396" author="dwight_10gen" created="Fri, 8 Jul 2011 20:34:04 +0000"  >&lt;p&gt;couple notes:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;fwiw, see : &lt;a href=&quot;https://github.com/mongodb/mongo-snippets/tree/master/embedded&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-snippets/tree/master/embedded&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;you will be limited to a couple GB of data on 32 bit cpus.&lt;/li&gt;
	&lt;li&gt;does iOS etc. support memory mapped files?  that would be required.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="39210" author="eliot" created="Sat, 25 Jun 2011 05:09:32 +0000"  >&lt;p&gt;Would be great if someone could try on a bi-endian arm box?=&lt;/p&gt;</comment>
                            <comment id="38622" author="dmytty" created="Wed, 22 Jun 2011 00:38:03 +0000"  >&lt;p&gt;Arm v7+ is bi-endian.  Should MongoDB be distributed only for newer Arm versions?&lt;/p&gt;

&lt;p&gt;Some notes:&lt;/p&gt;

&lt;p&gt;Little-endian operating systems:&lt;br/&gt;
Linux on x86, x86-64, MIPSEL, Alpha, Itanium, S+core, MN103, CRIS, Blackfin, MicroblazeEL, ARM, M32REL, TILE, SH, XtensaEL and UniCore32&lt;br/&gt;
Mac OS X on x86, x86-64&lt;br/&gt;
OpenVMS on VAX, Alpha and Itanium&lt;br/&gt;
Solaris on x86, x86-64, PowerPC&lt;br/&gt;
Tru64 UNIX on Alpha&lt;br/&gt;
Windows on x86, x86-64, Alpha, PowerPC, MIPS and Itanium&lt;/p&gt;

&lt;p&gt;Big-endian operating systems:&lt;br/&gt;
AIX on POWER&lt;br/&gt;
AmigaOS on PowerPC and 680x0&lt;br/&gt;
HP-UX on Itanium and PA-RISC&lt;br/&gt;
Linux on MIPS, SPARC, PA-RISC, POWER, PowerPC, 680x0, ESA/390, z/Architecture, H8, FR-V, AVR32, Microblaze, ARMEB, M32R, SHEB and Xtensa.&lt;br/&gt;
Mac OS on PowerPC and 680x0&lt;br/&gt;
Mac OS X on PowerPC&lt;br/&gt;
MVS and DOS/VSE on ESA/390, and z/VSE and z/OS on z/Architecture&lt;br/&gt;
Solaris on SPARC&lt;/p&gt;

&lt;p&gt;Her&apos;s some compiler option notes:&lt;br/&gt;
&lt;a href=&quot;http://gcc.gnu.org/onlinedocs/gcc-4.0.4/gcc/ARM-Options.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://gcc.gnu.org/onlinedocs/gcc-4.0.4/gcc/ARM-Options.html&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Highlights of the compiler option include the following flags:&lt;br/&gt;
-mlittle-endian&lt;br/&gt;
Generate code for a processor running in little-endian mode. This is the default for all standard configurations. &lt;br/&gt;
-mbig-endian&lt;br/&gt;
Generate code for a processor running in big-endian mode; the default is to compile code for a little-endian processor. &lt;br/&gt;
-mwords-little-endian&lt;br/&gt;
This option only applies when generating code for big-endian processors. Generate code for a little-endian word order but a big-endian byte order. That is, a byte order of the form `32107654&apos;. Note: this option should only be used if you require compatibility with code for big-endian ARM processors generated by versions of the compiler prior to 2.8. &lt;br/&gt;
-mcpu=name&lt;br/&gt;
This specifies the name of the target ARM processor. GCC uses this name to determine what kind of instructions it can emit when generating assembly code. Permissible names are: `arm2&apos;, `arm250&apos;, `arm3&apos;, `arm6&apos;, `arm60&apos;, `arm600&apos;, `arm610&apos;, `arm620&apos;, `arm7&apos;, `arm7m&apos;, `arm7d&apos;, `arm7dm&apos;, `arm7di&apos;, `arm7dmi&apos;, `arm70&apos;, `arm700&apos;, `arm700i&apos;, `arm710&apos;, `arm710c&apos;, `arm7100&apos;, `arm7500&apos;, `arm7500fe&apos;, `arm7tdmi&apos;, `arm7tdmi-s&apos;, `arm8&apos;, `strongarm&apos;, `strongarm110&apos;, `strongarm1100&apos;, `arm8&apos;, `arm810&apos;, `arm9&apos;, `arm9e&apos;, `arm920&apos;, `arm920t&apos;, `arm922t&apos;, `arm946e-s&apos;, `arm966e-s&apos;, `arm968e-s&apos;, `arm926ej-s&apos;, `arm940t&apos;, `arm9tdmi&apos;, `arm10tdmi&apos;, `arm1020t&apos;, `arm1026ej-s&apos;, `arm10e&apos;, `arm1020e&apos;, `arm1022e&apos;, `arm1136j-s&apos;, `arm1136jf-s&apos;, `mpcore&apos;, `mpcorenovfp&apos;, `arm1176jz-s&apos;, `arm1176jzf-s&apos;, `xscale&apos;, `iwmmxt&apos;, `ep9312&apos;.&lt;br/&gt;
-mtune=name&lt;br/&gt;
This option is very similar to the -mcpu= option, except that instead of specifying the actual target processor type, and hence restricting which instructions can be used, it specifies that GCC should tune the performance of the code as if the target were of the type specified in this option, but still choosing the instructions that it will generate based on the cpu specified by a -mcpu= option. For some ARM implementations better performance can be obtained by using this option. &lt;br/&gt;
-march=name&lt;br/&gt;
This specifies the name of the target ARM architecture. GCC uses this name to determine what kind of instructions it can emit when generating assembly code. This option can be used in conjunction with or instead of the -mcpu= option. Permissible names are: `armv2&apos;, `armv2a&apos;, `armv3&apos;, `armv3m&apos;, `armv4&apos;, `armv4t&apos;, `armv5&apos;, `armv5t&apos;, `armv5te&apos;, `armv6&apos;, `armv6j&apos;, `iwmmxt&apos;, `ep9312&apos;. &lt;/p&gt;

&lt;p&gt;Conclusion:&lt;br/&gt;
It seems that TI OMAP processors using the ARM core are little endian.  As such, a Symbian, Meego, or Linux build on N900, N9, N8, should be relatively simple.  The same holds true for Android or iOS builds on nearly all of the hardware.&lt;/p&gt;</comment>
                            <comment id="27521" author="janis" created="Fri, 1 Apr 2011 11:58:43 +0000"  >&lt;p&gt;I second that.&lt;/p&gt;

&lt;p&gt;i would like to run it on qnap or synology   &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/biggrin.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/biggrin.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="25836" author="dmytty" created="Sun, 13 Mar 2011 02:48:24 +0000"  >&lt;p&gt;A comment was made elsewhere that mangodb should consider involvement with Linaro ( &lt;a href=&quot;http://www.linario.org/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://www.linario.org/&lt;/a&gt; ).   I agree strongly with this suggestion.  Mangodb could well become the &apos;go-to&apos; solution for embedded devices - particularly in the industrial area.&lt;/p&gt;

&lt;p&gt;Linaro is the strongly supported team (70+ now, soon 100 full time developers) which is creating a software ecosystem for the ARM market.  All of the Linaro software will run on devices such as the Pandaboard with up to date OS&apos;s such as Ubuntu 11.04 (currently supporting 10.10). &lt;/p&gt;

&lt;p&gt;Projects such as Linario show the rapid growth in the ARM market.&lt;/p&gt;

&lt;p&gt;After doing a survey of NoSQL, I was very disappointed to see that MangoDB was not supported on devices such as the pandaboard.  In every other respect MangoDB seems perfect - in particular, it has the ad-hoc query support that Redis does not have.  I had assumed that C++ mean no problems porting to ARM, and that it was already available, but....&lt;/p&gt;

&lt;p&gt;The potential for NoSQL in the embedded space is huge.  Matched with Pandaboard + Python, MangoDB would allow for some crazy fast prototyping for low cost (&amp;lt;$200), compact (&amp;lt;mini-ITX), low-power (&amp;lt;5 watt) devices.&lt;/p&gt;

&lt;p&gt;How about NoSQL = NoDesktop (Not Only Desktop)?  Hope this happens soon...&lt;/p&gt;</comment>
                            <comment id="25503" author="krause" created="Tue, 8 Mar 2011 14:27:05 +0000"  >&lt;p&gt;Here is a quick status report of my current findings for compiling it under ARM (just in case someone else want&apos;s to give it a try as well):&lt;/p&gt;

&lt;p&gt;I was able to set up a Debian wheezy installation with qemu emulating a versatile developing board using the instructions at &lt;a href=&quot;http://geekboy.fr/geek/installing-debian-squeeze-arm-with-qemu-on-a-mac/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://geekboy.fr/geek/installing-debian-squeeze-arm-with-qemu-on-a-mac/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I tried compilation on the emulated machine and installed all necessary packages, but since it was incredible slow I now use a cross compile environment based on the default Ubuntu ARM GCC 4.4 cross compiler and scratchbox2 (I had to apply &lt;a href=&quot;http://maemo.gitorious.org/scratchbox2/scratchbox2/commit/e1ab7c2b9e2be2fc831ea11a3c7a45b71df14028&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://maemo.gitorious.org/scratchbox2/scratchbox2/commit/e1ab7c2b9e2be2fc831ea11a3c7a45b71df14028&lt;/a&gt; otherwise the Ubuntu ARM cross compiler does not work properly with scratchbox2, I also copied everything from /usr and /lib from the emulated machine into the cross compile root).&lt;/p&gt;

&lt;p&gt;Debian Wheezy has GCC 4.4 which claims support for  builtin atomic functions under ARM in their changelog.&lt;/p&gt;

&lt;p&gt;Unfortunately both compilers (the Debian native one and the Ubuntu cross) &lt;b&gt;did not define _&lt;em&gt;GCC_HAVE_SYNC_COMPARE_AND_SWAP_4&lt;/b&gt; even if they should have the corresponding system functions. I bypassed this by specifying &apos;scons -cxx=&quot;-D&lt;/em&gt;_GCC_HAVE_SYNC_COMPARE_AND_SWAP_4&quot;  mongod&apos; as build command.&lt;/p&gt;

&lt;p&gt;Currently the mongo-daemon is compiling in my scratchbox2-enviroment and I hope I can report some positive results later.&lt;/p&gt;</comment>
                            <comment id="25404" author="aprilmay" created="Mon, 7 Mar 2011 16:12:44 +0000"  >&lt;p&gt;Thomas,&lt;br/&gt;
Interesting. For the N900 the standard gcc is 4.2.1, bad luck. Will try to get or rebuild gcc &amp;gt;= 4.4 .&lt;/p&gt;</comment>
                            <comment id="25384" author="krause" created="Mon, 7 Mar 2011 10:02:56 +0000"  >&lt;p&gt;@repat&lt;/p&gt;

&lt;p&gt;Did you compile with 4.4 or a lower version?&lt;/p&gt;

&lt;p&gt;The&lt;/p&gt;

&lt;p&gt;#elif defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)&lt;br/&gt;
    // this is in GCC &amp;gt;= 4.1&lt;br/&gt;
    AtomicUInt AtomicUInt::operator++()&lt;/p&gt;
{
        return __sync_add_and_fetch(&amp;amp;x, 1);
    }
&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;...&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;code in bson/util/atomic_int.h should actually compile if using gcc 4.4 without any change to the elif macro. The only ARM-powered device I have currently access to is my Android-Smartphone. Maybe I can give it a try. ARM is said to be little endian per default so it might work.&lt;/p&gt;

&lt;p&gt;If there is any more assembler code in mongodb I should be aware of?&lt;/p&gt;</comment>
                            <comment id="25240" author="aprilmay" created="Fri, 4 Mar 2011 15:06:11 +0000"  >&lt;p&gt;I second that. ARM devices are getting very popular everywhere. I&apos;m planning to switch a Python project (Hanji: &lt;a href=&quot;http://hanji.info/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://hanji.info/&lt;/a&gt;) targeting mobile devices to mongo where it would fit perfectly well, but this is a real stopper and if it&apos;s not moving i&apos;ll have to drop this idea. So really no one can investigate this issue? I&apos;m using Maemo/N900, Android and Meego are targets too.&lt;/p&gt;</comment>
                            <comment id="19618" author="eliot" created="Mon, 25 Oct 2010 21:43:51 +0000"  >&lt;p&gt;Making that compile is a very small pieces of the work to be done.&lt;br/&gt;
So its not worth doing that without doing the subsequent massive undertaking&lt;/p&gt;</comment>
                            <comment id="19617" author="repat" created="Mon, 25 Oct 2010 21:40:13 +0000"  >&lt;p&gt;The way I understood the sourcecode you could either use ARM ASM Code(for i386 etc) OR(#else if) the bit of code which is only available in gcc &amp;gt;=4.4.0.&lt;br/&gt;
I don&apos;t really know but I just..randomly guess that &quot;endianness&quot; has something to do with the ASM Code? If this gcc is an ARM specific version, shouldn&apos;t that feature be automatic? Like I said, I don&apos;t know much about it, correct me if I&apos;m wrong, I just don&apos;t want to spend time on reinstalling Squeeze on my dockstar for nothing, but I&apos;d give it a try&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;br/&gt;
&lt;a href=&quot;http://en.wikipedia.org/wiki/Endianness&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://en.wikipedia.org/wiki/Endianness&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="19263" author="eliot" created="Sat, 16 Oct 2010 21:08:59 +0000"  >&lt;p&gt;Unfortunately compiling is only a small portion of the issue.&lt;br/&gt;
The bigger problem is endianness - which is fixable, just a fair amount of work.&lt;/p&gt;</comment>
                            <comment id="19251" author="mydemise" created="Sat, 16 Oct 2010 12:13:25 +0000"  >&lt;p&gt;re pat: excellent work documenting all that! I see there&apos;s some steps you&apos;ve taken to trick the compiler, I must give this a try myself. I too, however, have outlined steps I&apos;ve taken in an attempt to install Disapora on my N900! Link: &lt;a href=&quot;http://talk.maemo.org/showthread.php?t=63889&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://talk.maemo.org/showthread.php?t=63889&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="19250" author="repat" created="Sat, 16 Oct 2010 12:06:03 +0000"  >&lt;p&gt;I&apos;d like to second that as well. I had a look at the code and got it compiled until it comes to atomic integers: &lt;a href=&quot;http://repat.de/2010/10/diaspora-on-dockstar-with-debian-lenny/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://repat.de/2010/10/diaspora-on-dockstar-with-debian-lenny/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="19249" author="mydemise" created="Sat, 16 Oct 2010 10:08:41 +0000"  >&lt;p&gt;I too can express great interest in getting this feature added. I&apos;ve tried installing mongoDB on my armv7 powered N900, would be great to get it working.&lt;/p&gt;</comment>
                            <comment id="19134" author="artisan" created="Tue, 12 Oct 2010 21:39:25 +0000"  >&lt;p&gt;I second this request. Would be great to use mongoDB on all that arm based mini plattforms, as sheeva, dockstar .. whatever kirkwood &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="217703">SERVER-19502</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="151861">SERVER-14852</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="151867">SERVER-14853</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="217702">WT-2013</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="83170">SERVER-10294</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10320">
                    <name>Documented</name>
                                                                <inwardlinks description="is documented by">
                                        <issuelink>
            <issuekey id="336388">DOCS-9567</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="147957">SERVER-14619</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="199488">SERVER-18166</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="102009">SERVER-12065</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="995141">SERVER-44532</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="105012">SERVER-12283</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="277710">SERVER-23555</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="15771" name="armdoubles.diff" size="4493" author="janimo" created="Wed, 4 Apr 2012 20:31:47 +0000"/>
                            <attachment id="15112" name="mongi.diff" size="2124" author="janimo" created="Thu, 1 Mar 2012 16:05:27 +0000"/>
                            <attachment id="15680" name="mongoarm.diff" size="8271" author="janimo" created="Fri, 30 Mar 2012 15:32:26 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>81.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 12 Oct 2010 21:39:25 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        5 years, 26 weeks, 6 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<s><a href='https://jira.mongodb.org/browse/SERVER-14852'>SERVER-14852</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-14853'>SERVER-14853</a></s>, <s><a href='https://jira.mongodb.org/browse/WT-2013'>WT-2013</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-19502'>SERVER-19502</a></s>]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>BUILD-17114</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>carl.champain@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            5 years, 26 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10000" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Old_Backport</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10000"><![CDATA[No]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>coolaj86</customfieldvalue>
            <customfieldvalue>andrew.morrow@mongodb.com</customfieldvalue>
            <customfieldvalue>schwerin@mongodb.com</customfieldvalue>
            <customfieldvalue>artisan</customfieldvalue>
            <customfieldvalue>hutchman</customfieldvalue>
            <customfieldvalue>brian.mccarthy@mongodb.com</customfieldvalue>
            <customfieldvalue>b.dheure</customfieldvalue>
            <customfieldvalue>dan@littlegenius.io</customfieldvalue>
            <customfieldvalue>phatzer</customfieldvalue>
            <customfieldvalue>dmytty</customfieldvalue>
            <customfieldvalue>dwight@mongodb.com</customfieldvalue>
            <customfieldvalue>eliot</customfieldvalue>
            <customfieldvalue>milkie@mongodb.com</customfieldvalue>
            <customfieldvalue>maestro_alubia</customfieldvalue>
            <customfieldvalue>fredrik-svantesson</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>gbfromhb</customfieldvalue>
            <customfieldvalue>hlfh</customfieldvalue>
            <customfieldvalue>kostyuk</customfieldvalue>
            <customfieldvalue>janimo</customfieldvalue>
            <customfieldvalue>janis</customfieldvalue>
            <customfieldvalue>trusktr</customfieldvalue>
            <customfieldvalue>jrbaldwin</customfieldvalue>
            <customfieldvalue>mrzyx</customfieldvalue>
            <customfieldvalue>mydemise</customfieldvalue>
            <customfieldvalue>jimmy00784</customfieldvalue>
            <customfieldvalue>kev</customfieldvalue>
            <customfieldvalue>secesh</customfieldvalue>
            <customfieldvalue>mthompson</customfieldvalue>
            <customfieldvalue>mauriciootta</customfieldvalue>
            <customfieldvalue>nipun_batra</customfieldvalue>
            <customfieldvalue>olouv</customfieldvalue>
            <customfieldvalue>Pawel Sledzikowski</customfieldvalue>
            <customfieldvalue>skrabban</customfieldvalue>
            <customfieldvalue>aprilmay</customfieldvalue>
            <customfieldvalue>ppafford</customfieldvalue>
            <customfieldvalue>plustek</customfieldvalue>
            <customfieldvalue>repat</customfieldvalue>
            <customfieldvalue>kim3er</customfieldvalue>
            <customfieldvalue>Gorbush</customfieldvalue>
            <customfieldvalue>soywiz</customfieldvalue>
            <customfieldvalue>krause</customfieldvalue>
            <customfieldvalue>tlturner</customfieldvalue>
            <customfieldvalue>radamanth</customfieldvalue>
            <customfieldvalue>wpjunior</customfieldvalue>
            <customfieldvalue>yigits</customfieldvalue>
            <customfieldvalue>trukhinyuri</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrpevb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hrcl1z:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6222</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1061">Build 17 (07/15/16)</customfieldvalue>
    <customfieldvalue id="1062">Build 18 (08/05/16)</customfieldvalue>
    <customfieldvalue id="1187">Build 2016-08-26</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrimkn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>