Troubles with GNU Radio installation from source - gnuradio

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.

Related

Building C++ Pybind11 extension with setuptools and CMake generates .so directory

I am trying to use setuptools to install a C++ library with a Pybind11 interface using CMake. For using CMake with setuptools, I am using the code in the following answer: Extending setuptools extension to use CMake in setup.py?
I am able to build the library by hand with cmake.
Unfortunately however, when executing pip install . in the root directory of my project, the build fails.
While the first call to cmake (self.spawn(['cmake', str(cwd)] + cmake_args)) finishes without any error, executing the second call (self.spawn(['cmake', '--build', '.'] + build_args)) gives me the following error:
/users/thoerman/miniconda3/envs/postproc_np_products/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot open output file /users/thoerman/postproc_np_products/build/lib.linux-x86_64-cpython-37/postproc_ops_cpp.cpython-37m-x86_64-linux-gnu.so: Is a directory
collect2: error: ld returned 1 exit status
gmake[3]: *** [/users/thoerman/postproc_np_products/build/lib.linux-x86_64-cpython-37/postproc_ops_cpp.cpython-37m-x86_64-linux-gnu.so] Error 1
gmake[2]: *** [CMakeFiles/postproc_ops_cpp.dir/all] Error 2
gmake[1]: *** [CMakeFiles/postproc_ops_cpp.dir/rule] Error 2
gmake: *** [postproc_ops_cpp] Error 2
But when running the exact same commands on the command line inside the build_temp directory, everything works just fine.
Does anyone have a hint for me, what might be going wrong?
After further digging into the problem, I found the solution myself.
The problem was with the lines
extdir = pathlib.Path(self.get_ext_fullpath(ext.name))
extdir.mkdir(parents=True, exist_ok=True)
This created a directory for the target to be built. Building the target then failed, since there was already a directory with the same name.
I was able to solve it by replacing the second line as follows:
extdir.parent.mkdir(parents=True, exist_ok=True)

Error in Compiling DLPC3010 DLPC-API in jetson Nano

I am trying to compile DLPC Projector APIs in the jetson nano. However, it is throwing an error as in added snapshot. I came across one solution here. However it is not being helpful.
DLPC-APS - https://www.ti.com/tool/DLPC-API
ig#ig-desktop:~/Desktop/Texas Instruments/DLPC-API-1.8/samples/dlpc654x_samples/build$ cmake ../
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ig/Desktop/Texas Instruments/DLPC-API-1.8/samples/dlpc654x_samples/build
ig#ig-desktop:~/Desktop/Texas Instruments/DLPC-API-1.8/samples/dlpc654x_samples/build$ make
[ 4%] Building C object CMakeFiles/libdlpc654x_sample.dir/home/ig/Desktop/Texas_Instruments/DLPC-API-1.8/api/dlpc_common.c.o
cc: error: unrecognized command line option ‘-m32’
CMakeFiles/libdlpc654x_sample.dir/build.make:75: recipe for target 'CMakeFiles/libdlpc654x_sample.dir/home/ig/Desktop/Texas_Instruments/DLPC-API-1.8/api/dlpc_common.c.o' failed
make[2]: *** [CMakeFiles/libdlpc654x_sample.dir/home/ig/Desktop/Texas_Instruments/DLPC-API-1.8/api/dlpc_common.c.o] Error 1
CMakeFiles/Makefile2:88: recipe for target 'CMakeFiles/libdlpc654x_sample.dir/all' failed

'brew install cmake' gives 'InsecurePlatformWarning'

on mac OSX 10.9.5 (Mavericks)
$brew install cmake
gives
==> Using the sandbox
==> Downloading https://cmake.org/files/v3.8/cmake-3.8.0.tar.gz
Already downloaded: /Users/me/Library/Caches/Homebrew/cmake-3.8.0.tar.gz
==> ./bootstrap --prefix=/usr/local/Cellar/cmake/3.8.0 --no-system-libs --parallel=8 --datadir=/share/cmake --docdir=/sh
==> make
Last 15 lines from /Users/me/Library/Logs/Homebrew/cmake/02.make:
[100%] Linking CXX executable ../bin/ctest
[100%] Built target ctest
Scanning dependencies of target documentation
[100%] sphinx-build man: see Utilities/Sphinx/build-man.log
Exception occurred:
File "/usr/local/Cellar/sphinx-doc/1.5.5/libexec/lib/python2.7/site-packages/sphinx/util/requests.py", line 52, in <module>
requests.packages.urllib3.exceptions.InsecurePlatformWarning)
AttributeError: 'module' object has no attribute 'InsecurePlatformWarning'
The full traceback has been saved in /tmp/sphinx-err-FKTGTI.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
make[2]: *** [Utilities/Sphinx/doc_format_man] Error 1
make[1]: *** [Utilities/Sphinx/CMakeFiles/documentation.dir/all] Error 2
make: *** [all] Error 2
Do not report this issue to Homebrew/brew or Homebrew/core!
These open issues may also help:
glew 2.0.0: add "--with-cmake" option https://github.com/Homebrew/homebrew-core/pull/12722
qt5: cmake find_package(Qt5Core) doesn't work when linked to /usr/local https://github.com/Homebrew/homebrew-core/issues/8392
Error: You are using macOS 10.9.
We (and Apple) do not provide support for this old version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: You are using macOS 10.9.
We (and Apple) do not provide support for this old version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
why am i getting this error?
A search for this on SO led me to this page which says 'This happens on Python 2 platforms that have an outdated ssl module. '
I am using Python 2.7.13. I followed this page and issued:
pip install urllib3[secure]
but I still get the same error.
turns out make 3.8 is not compatible w mavericks. i upgraded to el capitan and it installed without a hiccough.

Can't find jemalloc while building MariaDB on Raspbian Wheezy

I have installed the list of Required tools shown on the Build Environment Setup for Linux, including JEMALLOC, on my Raspberry Pi which has Raspbian Wheezy installed, fully updated, and setup for development. I have successfully built some of the listed tools (Bison, CMake 3.7.2). I have gcc and g++ (Raspbian 4.8.2-21rpi3rpi1) 4.8.2.
When I attempt to build mariadb 10.1.22 (master branch from the github repository) using cmake . -DBUILD_CONFIG=mysql_release I get an error:
CMake Error at cmake/jemalloc.cmake:38 (MESSAGE):
jemalloc is not found
Call Stack (most recent call first):
CMakeLists.txt:343 (CHECK_JEMALLOC)
After building JEMALLOC, I installed it into /usr/local using sudo make install. I have export JEMALLOC_PATH=/usr/local in my .bashrc.
I don't understand why CHECK_JEMALLOC is failing to find the correct files. A list of the file locations is:
/usr/local/bin/jemalloc.sh
/usr/local/bin/jemalloc-config
/usr/local/include/jemalloc
/usr/local/include/jemalloc/jemalloc.h
/usr/local/lib/pkgconfig/jemalloc.pc
/usr/local/lib/libjemalloc.so
/usr/local/lib/libjemalloc_pic.a
/usr/local/lib/libjemalloc.so.2
/usr/local/lib/libjemalloc.a
/usr/local/share/doc/jemalloc
/usr/local/share/doc/jemalloc/jemalloc.html
/usr/local/share/man/man3/jemalloc.3
I can attach a link to the CMake configure log, error log, and terminal output if needed.
UPDATE
I tried using just cmake . and the configuration part worked, but the make failed with the following error:
/home/user/Downloads/mariadb/server/storage/mroonga/vendor/groonga/lib/expr.c:6816:7: note: in expansion of macro ‘GRN_PTR_POP’
GRN_PTR_POP(&keywords, keyword);
^
cc: internal compiler error: Killed (program cc1)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.8/README.Bugs> for instructions.
storage/mroonga/vendor/groonga/lib/CMakeFiles/libgroonga.dir/build.make:257: recipe for target 'storage/mroonga/vendor/groonga/lib/CMakeFiles/libgroonga.dir/expr.c.o' failed
make[2]: *** [storage/mroonga/vendor/groonga/lib/CMakeFiles/libgroonga.dir/expr.c.o] Error 4
make[2]: Leaving directory '/home/user/Downloads/mariadb/server'
CMakeFiles/Makefile2:4420: recipe for target 'storage/mroonga/vendor/groonga/lib/CMakeFiles/libgroonga.dir/all' failed
make[1]: *** [storage/mroonga/vendor/groonga/lib/CMakeFiles/libgroonga.dir/all] Error 2
make[1]: Leaving directory '/home/user/Downloads/mariadb/server'
Makefile:152: recipe for target 'all' failed
make: *** [all] Error 2

How to build hsdis.dll for Windows 32-bit?

I am trying to build hsdis.dll in my laptop 32-bit Windows. I read http://dropzone.nfshost.com/hsdis.htm instructions and got to know that I will have to follow those steps. I saw that I have to use the mingw64-i686-gcc-core. I followed the steps, but have always found this error.
make[2]: i686-w64-mingw32: Command not found
Makefile:246: recipe for target 'libiberty.a' failed
make[2]: *** [libiberty.a] Error 127
make[2]: Leaving directory '/home/User/hsdis/build/Linux-i586/libiberty'
Makefile:8045: recipe for target 'all-libiberty' failed
make[1]: *** [all-libiberty] Error 2
make[1]: Leaving directory '/home/User/hsdis/build/Linux-i586'
Makefile:192: recipe for target 'build/Linux-i586/bfd/libbfd.a' failed
make: *** [build/Linux-i586/bfd/libbfd.a] Error 2
I would also like to know how to use the directive PrintAssembly, because i wanted to see the assembly code, of a Java class.
I have already saw other posts here, but none of them helped.
Thanks in advance
Here are the steps which help me to build it (x64 version, x86 should be almost the same):
download and unpack the latest hsdis sources as described in the building manual from the http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/tags;
download the latest bintuils-2.26.tar.gz package from the http://mirror.tochlab.net/pub/gnu/binutils/;
copy it to your Cygwin home directory and unpack it from the Cygwin terminal (this is very important, otherwise you may get permission problems):
tar -xzvf ./binutils-2.26.tar.gz
install the following Cygwin packages: mingw64-x86_64-gcc-core for x64 or mingw64-i686-gcc-core for x86, diffutils and make;
go to hsdis directory;
for x64 library build with the command: make OS=Linux MINGW=x86_64-w64-mingw32 'AR=x86_64-w64-mingw32-ar' BINUTILS=~/binutils-2.26 CONFIGURE_ARGS="--host=x86_64-w64-mingw32", for x86 library build with the command: make OS=Linux MINGW=i686-w64-mingw32 'AR=i686-w64-mingw32-ar' BINUTILS=~/binutils-2.26 CONFIGURE_ARGS="--host=i686-w64-mingw32"
if you have errors with undefined references to zlib (i.e. build/Linux-amd64/bfd/libbfd.a(compress.o):compress.c:(.text+0x7e): undefined reference to inflate), modify Makefile in hsdis: find the line $(CC) $(OUTFLAGS) $(CPPFLAGS) $(CFLAGS) $(SOURCE) $(DLDFLAGS) $(LIBRARIES) for the $(TARGET) target and append to the end -lz -L$(TARGET_DIR)/zlib, then run the build command again;
after that you should find the library hsdis-amd64.dll in hsdis\build\Linux-amd64\ for x64, or hsdis-i386.dll in hsdis\build\Linux-i586\ for x86.