[mongodb-dev] ARM support plans?

Skip to first unread message

Jonathan Knezek

May 3, 2010, 11:00:47 AM5/3/10
to mongodb-dev

I'm trying to get MongoDB compiled and running on a Marvell
SheevaPlug, which runs Ubuntu 9.04 on an ARM CPU (armv5te). When
compiling, the build fails with the following error:

db/../bson/util/atomic_int.h:96:4: error: #error "unsupported compiler
or platform"

I see that atomic_int.h has code specific to x86 and x64 platforms -
are there any plans to support ARM as a platform? This would really
help round out the plug as a low-power web host. I'm not so hot with
C/++ but I'll be glad to test anything or provide information.



You received this message because you are subscribed to the Google Groups "mongodb-dev" group.
To post to this group, send email to mongo...@googlegroups.com.
To unsubscribe from this group, send email to mongodb-dev...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/mongodb-dev?hl=en.

Eliot Horowitz

May 3, 2010, 11:08:57 AM5/3/10
to mongo...@googlegroups.com
I don't think ARM would be that hard since its bi-endian (if i
remember correctly) just has never been tested/looked at.

What version of gcc are you using?

Jonathan Knezek

May 3, 2010, 1:22:34 PM5/3/10
to mongodb-dev
> What version of gcc are you using?

# gcc -v
Using built-in specs.
Target: arm-linux-gnueabi
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
4.3.3-5ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.3/
README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/
usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-
included-gettext --enable-threads=posix --enable-nls --with-gxx-
include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-
clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --
disable-libssp --disable-sjlj-exceptions --with-arch=armv5t --with-
tune=cortex-a8 --enable-checking=release --build=arm-linux-gnueabi --
host=arm-linux-gnueabi --target=arm-linux-gnueabi
Thread model: posix
gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4)

Mathias Stearn

May 3, 2010, 1:51:02 PM5/3/10
to mongo...@googlegroups.com
If you can find the best way to do an atomic increment on ARM it
should be pretty easy to add support. Just copy the i386/x64 block and
change the assembly.

I looked at the boost code and I'm pretty sure it uses pthread locks
on ARM for shared_ptr counts, so mongo will probably be a good bit
slower since we depend on shared_ptr copies being fast. Also, since
ARM is 32 bit you will be limited to 2GB of data in mongo.

I don't want to discourage you from trying to get this working since I
think it'd be pretty cool, I just want to make sure your expectations
are reasonable.
Reply all
Reply to author
0 new messages