Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/germanaizek/mongodb-without-avx
⚠ mongodb core-dump illegal instruction ✔ Building without AVX instructions not supported by cpu's
https://github.com/germanaizek/mongodb-without-avx
docker mongo mongodb mongodb-core-dump-illegal-instruction mongodb-docker mongodb-no-avx mongodb-without-avx no-avx patch without-avx without-avx-avx2
Last synced: about 16 hours ago
JSON representation
⚠ mongodb core-dump illegal instruction ✔ Building without AVX instructions not supported by cpu's
- Host: GitHub
- URL: https://github.com/germanaizek/mongodb-without-avx
- Owner: GermanAizek
- License: gpl-3.0
- Created: 2023-02-15T21:54:08.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-11-29T13:05:31.000Z (about 1 year ago)
- Last Synced: 2023-11-29T14:26:25.019Z (about 1 year ago)
- Topics: docker, mongo, mongodb, mongodb-core-dump-illegal-instruction, mongodb-docker, mongodb-no-avx, mongodb-without-avx, no-avx, patch, without-avx, without-avx-avx2
- Language: Dockerfile
- Homepage:
- Size: 19.5 KB
- Stars: 31
- Watchers: 3
- Forks: 12
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Building Mongodb without avx
Python Prerequisites
---------------In order to build MongoDB, Python 3.7+ is required, and several Python
modules must be installed. Python 3 is included in macOS 10.15 and later.
For earlier macOS versions, Python 3 can be installed using Homebrew or
MacPorts or similar.To install the required Python modules, run:
$ python3 -m pip install -r etc/pip/compile-requirements.txt
Installing the requirements inside a python3 based virtualenv
dedicated to building MongoDB is recommended.Note: In order to compile C-based Python modules, you'll also need the
Python and OpenSSL C headers. Run:* Fedora/RHEL - `dnf install python3-devel openssl-devel`
* Ubuntu (20.04 and newer)/Debian (Bullseye and newer) - `apt install python-dev-is-python3 libssl-dev`
* Ubuntu (18.04 and older)/Debian (Buster and older) - `apt install python3.7-dev libssl-dev`Debian/Ubuntu
--------------To install dependencies on Debian or Ubuntu systems:
# apt-get install build-essential
Patching
--------------```
git clone --recurse-submodules https://github.com/GermanAizek/mongodb-without-avx.git
cd mongo
```Now you need to choose a patch for your requirements.
- o2_patch.diff - default optimization
- o3_patch.diff - maximum optimization (big binary file)
- os_patch.diff - size binary optimizationExample:
```
patch -p1 SConstruct < ../o3_patch.diff
```Done! Now we perform default building that you need.
SCons
---------------If you only want to build the database server `mongod`:
$ python3 buildscripts/scons.py install-mongod
***Note***: For C++ compilers that are newer than the supported
version, the compiler may issue new warnings that cause MongoDB to
fail to build since the build system treats compiler warnings as
errors. To ignore the warnings, pass the switch
`--disable-warnings-as-errors` to scons.$ python3 buildscripts/scons.py install-mongod --disable-warnings-as-errors
***Note***: On memory-constrained systems, you may run into an error such as `g++: fatal error: Killed signal terminated program cc1plus`. To use less memory during building, pass the parameter `-j1` to scons. This can be incremented to `-j4`, `-j8`, and higher as appropriate to find the fastest working option on your system. `-j` it's count CPU threads (if CPU does not have multithreading, then its number cores)
$ python3 buildscripts/scons.py install-mongod -j1
To install `mongod` directly to `/opt/mongo`
$ python3 buildscripts/scons.py DESTDIR=/opt/mongo install-mongod
To create an installation tree of the servers in `/tmp/unpriv` that
can later be copied to `/usr/priv`$ python3 buildscripts/scons.py DESTDIR=/tmp/unpriv PREFIX=/usr/priv install-servers
If you want to build absolutely everything (`mongod`, `mongo`, unit
tests, etc):$ python3 buildscripts/scons.py install-all-meta
SCons Targets
--------------The following targets can be named on the scons command line to build and
install a subset of components:* `install-mongod`
* `install-mongos`
* `install-core` (includes *only* `mongod` and `mongos`)
* `install-servers` (includes all server components)
* `install-devcore` (includes `mongod`, `mongos`, and `jstestshell` (formerly `mongo` shell))
* `install-all` (includes a complete end-user distribution and tests)
* `install-all-meta` (absolutely everything that can be built and installed)***NOTE***: The `install-core` and `install-servers` targets are *not*
guaranteed to be identical. The `install-core` target will only ever include a
minimal set of "core" server components, while `install-servers` is intended
for a functional end-user installation. If you are testing, you should use the
`install-core` or `install-devcore` targets instead.