Reducing memory used by make - cmake

I have been trying to build xmrig for the raspberry pi, but it always fails to build because cc1plus ran out of memory. I know the RPi doesn't have a high hashrate, I'm just experimenting. The error that I get when following the official Ubuntu build is:
cc1plus: out of memory allocating 5190462000 bytes after a total of 1040547840 bytes
make[2]: *** [CMakeFiles/xmrig.dir/build.make:2598: CMakeFiles/xmrig.dir/src/crypto/rx/RxDataset.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:118: CMakeFiles/xmrig.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
This is during the make command. All the other commands prior worked.

Here is my attempt at an answer.
If your system doesn't have enough RAM to support your compiler maybe consider limiting the number of jobs. My coworker has run into this issue when compiling LLVM.
During the build step limit the number of jobs.
cmake --build build/ --parallel x
https://cmake.org/cmake/help/latest/manual/cmake.1.html
You can limit the number of threads make uses. Cmake definitely isn't using this much memory. The compiler is. You can limit how much memory is being used by limited the amount of threads/jobs the compiler is allowed to use.

Related

Why can I not update to the newest version of libtorch?

I followed the tutorial here to make a c++ front-end application for pytorch:
https://pytorch.org/tutorials/advanced/cpp_frontend.html
I used GPU version. I could succesfully cmake and make.
Now I updated to the latest version of libtorch. I can still cmake, but on make, I get the following error:
[willem#int2 build]$ make
make[2]: *** No rule to make target `/sw/arch/RedHatEnterpriseServer7/EB_production/2019/software/cuDNN/7.6.5.32-CUDA-10.1.243/include/lib64', needed by `polIter'. Stop.
make[1]: *** [CMakeFiles/polIter.dir/all] Error 2
make: *** [all] Error 2
My cmake command is:
cmake -DCMAKE_PREFIX_PATH=~/libtorch1.8.1/share/cmake/Torch/
-DCMAKE_MODULE_PATH=/home/willemvj/libtorch1.8.1/share/cmake/Torch/
-DCUDNN_LIBRARY_PATH=$EBROOTCUDNN/include/lib64
-DCUDNN_INCLUDE_DIR=$EBROOTCUDNN/include -DCUDNN_LIBRARY=$EBROOTCUDNN/lib64
/libcudnn.so.7 .. #
Any ideas on what is causing this?

Troubles with GNU Radio installation from source

I'm trying to do a clean installation on a PC running Ubuntu 16.04. Originally, GNU Radio was installed by the build-gnuradio script. However, my new USRP board had a different ABI. I decided to redo the installation. Using the script was pretty smooth the last time I used it. After a very long painful day, I got the build to go as far as 100% by issuing the command bash ./build-gnuradio -v -m. However, there is still an error as shown below
Scanning dependencies of target pyuhd
[ 99%] Building CXX object python/CMakeFiles/pyuhd.dir/pyuhd.cpp.o
[100%] Linking CXX shared library libpyuhd.so
[100%] Built target pyuhd
Scanning dependencies of target pyuhd_library
[100%] Generating build/timestamp
Traceback (most recent call last):
File "/home/kiruna/grc/uhd/host/build/python/setup.py", line 9, in <module>
from setuptools import setup
ImportError: No module named setuptools
python/CMakeFiles/pyuhd_library.dir/build.make:64: recipe for target 'python/build/timestamp' failed
make[2]: *** [python/build/timestamp] Error 1
CMakeFiles/Makefile2:3997: recipe for target 'python/CMakeFiles/pyuhd_library.dir/all' failed
make[1]: *** [python/CMakeFiles/pyuhd_library.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2
UHD build apparently failed
Exiting UHD build
I have used the build-gnuradio so many times in the past but things are quite painful now. Any input will be appreciated.
I had the same problem using pybombs. It seems that the issue happens when you have both python2 and python3 installed. In that case, the cmake script in (UHDSRC)/host/python/CMakeLists.txt erroneously defaults to python3.
I have fixed the issue by replacing the mention of ${PYTHON_EXECUTABLE} around line 68 with ${PYTHON2_EXECUTABLE}
See here: https://twitter.com/f4grx/status/1143620034708815872
Not sure this change is desirable for the upstream project.

How to resolve redis install error

I want to install redis on aix 6.1, but some problem happened and I can't find the solution to resolve this problem. Who can tell me the reason for this compiler error.
# /opt/freeware/bin/make
cd src && /opt/freeware/bin/make all
make[1]: Entering directory `/opt/software/redis-2.8.17/src'
CC adlist.o
/bin/sh: cc: not found.
make[1]: *** [adlist.o] Error 127
make[1]: Leaving directory `/opt/software/redis-2.8.17/src'
make: *** [all] Error 2
You're attempting to compile Redis without a C compiler (that's what cc is) installed or present on your $PATH.
Install one, or fix your $PATH.
If you don't need bleeding-edge, don't build it yourself, but use an RPM from Michael Perzl. Right now it goes up to redis 2.6.7.
If you are experienced in building from source, and don't mind altering some source code here and there, read Michael Perzls instructions. Compiling on AIX is not for the faint of heart.
If you want to save yourself a lot of white hairs and headaches, just buy a linux server and set up a good network connection.
Hope this helps, TW

Redis-2.6.16 installation issue

I am trying to install redis-2.6.16 on windows using cygwin. I am getting below error.
Appreciate any help. Thanks.
/c/cygwin64/bin/cc: /c/cygwin64/bin/cc: cannot execute binary file
make[3]: *** [net.o] Error 126
make[3]: Leaving directory `/c/cygwin64/home/redis-2.6.16/deps/hiredis'
make[2]: *** [hiredis] Error 2
make[2]: Leaving directory `/c/cygwin64/home/redis-2.6.16/deps'
make[1]: [persist-settings] Error 2 (ignored)
CC adlist.o
/c/cygwin64/bin/cc: /c/cygwin64/bin/cc: cannot execute binary file
make[1]: *** [adlist.o] Error 126
make[1]: Leaving directory `/c/cygwin64/home/redis-2.6.16/src'
make: *** [all] Error 2
You can't use basic Redis on Windows, you have to use the binaries given by the unsupported port on Windows: https://github.com/MSOpenTech/redis
Basically, you can't just compile the C code of Redis on Windows. And this port has some drawbacks (as Windows does not support fork command), there are "stop the world" operations in it (that redis does not have in its official version): you can't use it for production.
That said, the stack says that cc is missing, you need a C compiler on cygwin, but that won't be enough to make redis work on Windows. Check the last link (github) and download the binaries if you do need to make redis work on Windows.

nginx with ssl compile error

I'm hoping one of you have figured this out already.
I have been trying to compile nginx with ssl support and it is failing at make with the following error:
src/event/ngx_event_openssl.c:1690:31: error: variable ā€˜cā€™ set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors
make[1]: * [objs/src/event/ngx_event_openssl.o] Error 1
make[1]: Waiting for unfinished jobs....
make[1]: Leaving directory `/home/steve/tarballs/nginx-1.0.4'
make: ** [build] Error 2
Here are my configure arguments:
./configure --prefix=/opt/nginx --with-http_realip_module --pid-path=/opt/nginx/nginx.pid --with-http_ssl_module
Anyone have any idea whats going on here? I get the same error when pointing --openssl-dir to the source of openssl...
Thanks in advance... Let me know if need to give more info
with the removal of -Werror and -Wall in the make file after configure the issue was solved. it turned out to be a bug in the c code itself. yet unsure if this is hacking around or solving the problem.
according to google those tags will treat warnings as errors and was causing the build to fail