MongoDB 4.4 ARM64 builds for Raspberry Pi 3 Debian Buster

Hello good morning, I’m creating a small application and my idea is to have a small embedded in an old raspberry pi 3 that I have. In my application I use mongo 4.4 and when I tried to install it I found that there were no pre-builds for arm64 so I started to investigate and found the next thread:

In this thread the following is mentioned to create a build using cross-compiling:

sudo apt-get install gcc-8-aarch64-linux-gnu g++-8-aarch64-linux-gnu
$ sudo dpkg --add-architecture arm64
$ sudo apt-get update
$ sudo apt-get install libssl-dev:arm64 libcurl4-openssl-dev:arm64

$ git clone -b r4.4.0 https://github.com/mongodb/mongo.git
$ cd mongo

# Consider using a virtualenv for this
$ python3 -m pip install --user -r etc/pip/compile-requirements.txt

$ python3 buildscripts/scons.py --ssl CC=/usr/bin/aarch64-linux-gnu-gcc-8 CXX=/usr/bin/aarch64-linux-gnu-g++-8 CCFLAGS="-march=armv8-a+crc -mtune=cortex-a72" --install-mode=hygienic --install-action=hardlink --separate-debug archive-core{,-debug}

and made some modifications to adapt it to the rapsberry pi 3:

-mtune=cortex-a72
-mtune=cortex-a53

Maybe the mistake is precisely that I ventured to just change that. However, I also did the test without making any modifications and the mistake is exactly the same(a53):

/usr/bin/objcopy --only-keep-debug build/opt/mongo/mongo build/opt/mongo/mongo.debug
scons: building terminated because of errors.
build/opt/mongo/mongo failed: Error 1

In doing some more research I found that apparently instead of /usr/bin/objcopy you should use /usr/bin/arm-linux-gnueabihf-objcopy but here I miss too much.

Basically I come to ask if I’m on the right track and if anyone knows how to fix it or if they’ve already encountered this same problem.

Thank you very much.

1 Like

Hi Alvaro -

If you need to customize which objcopy is used, you can specify that on the SCons invocation just like you would the path to CC or CXX, like so:

scons ... OBJCOPY=/path/to/some/objcopy.

In your case, it looks like you would want scons ... OBJCOPY=/usr/bin/arm-linux-gnueabihf-objcopy

Hope that helps,
Andrew

1 Like

This topic was automatically closed 5 days after the last reply. New replies are no longer allowed.