gnuradio / pybombs

PyBOMBS (Python Build Overlay Managed Bundle System) is the GNU Radio install management system for resolving dependencies and pulling in out-of-tree projects.
https://gnuradio.org
GNU General Public License v3.0
414 stars 189 forks source link

GnuRadio installation fails not being able to find pthread_create #529

Closed kenichi-fukushima closed 2 years ago

kenichi-fukushima commented 5 years ago

I'm new to SDR and tried to install GnuRadio using PyBOMBS because a book recommends to do so.

I got the attached error log in <prefix>/src/uhd/host/build/CMakeFiles/CMakeError.log when I ran pybombs install gnuradio gr-osmosdr.

I'm using Ubuntu 18.04 and I have libpthread in /usr/lib/x86_64-linux-gnu.

I tried adding an env val entry to <prefix>/.pybombs/config.yml but it didn't help.

env:
   LD_LIBRARY_PATH: ${LD_LIBRARY_PATH}:/usr/lib/x86_64-linux-gnu
Determining if the pthread_create exist failed with the following output:
Change Dir: /home/keni/PyBOMBS/default/src/uhd/host/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_f8d81/fast"
/usr/bin/make -f CMakeFiles/cmTC_f8d81.dir/build.make CMakeFiles/cmTC_f8d81.dir/build
make[1]: Entering directory '/home/keni/PyBOMBS/default/src/uhd/host/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_f8d81.dir/CheckSymbolExists.c.o
/usr/bin/cc    -o CMakeFiles/cmTC_f8d81.dir/CheckSymbolExists.c.o   -c /home/keni/PyBOMBS/default/src/uhd/host/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c
Linking C executable cmTC_f8d81
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f8d81.dir/link.txt --verbose=1
/usr/bin/cc      -rdynamic CMakeFiles/cmTC_f8d81.dir/CheckSymbolExists.c.o  -o cmTC_f8d81 
CMakeFiles/cmTC_f8d81.dir/CheckSymbolExists.c.o: In function `main':
CheckSymbolExists.c:(.text+0x1b): undefined reference to `pthread_create'
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_f8d81.dir/build.make:97: recipe for target 'cmTC_f8d81' failed
make[1]: *** [cmTC_f8d81] Error 1
make[1]: Leaving directory '/home/keni/PyBOMBS/default/src/uhd/host/build/CMakeFiles/CMakeTmp'
Makefile:126: recipe for target 'cmTC_f8d81/fast' failed
make: *** [cmTC_f8d81/fast] Error 2

File /home/keni/PyBOMBS/default/src/uhd/host/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <pthread.h>

int main(int argc, char** argv)
{
  (void)argv;
#ifndef pthread_create
  return ((int*)(&pthread_create))[argc];
#else
  (void)argc;
  return 0;
#endif
}

Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/keni/PyBOMBS/default/src/uhd/host/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_bd4c5/fast"
/usr/bin/make -f CMakeFiles/cmTC_bd4c5.dir/build.make CMakeFiles/cmTC_bd4c5.dir/build
make[1]: Entering directory '/home/keni/PyBOMBS/default/src/uhd/host/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_bd4c5.dir/CheckFunctionExists.c.o
/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTC_bd4c5.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-3.10/Modules/CheckFunctionExists.c
Linking C executable cmTC_bd4c5
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bd4c5.dir/link.txt --verbose=1
/usr/bin/cc  -DCHECK_FUNCTION_EXISTS=pthread_create    -rdynamic CMakeFiles/cmTC_bd4c5.dir/CheckFunctionExists.c.o  -o cmTC_bd4c5 -lpthreads 
/usr/bin/ld: cannot find -lpthreads
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_bd4c5.dir/build.make:97: recipe for target 'cmTC_bd4c5' failed
make[1]: *** [cmTC_bd4c5] Error 1
make[1]: Leaving directory '/home/keni/PyBOMBS/default/src/uhd/host/build/CMakeFiles/CMakeTmp'
Makefile:126: recipe for target 'cmTC_bd4c5/fast' failed
make: *** [cmTC_bd4c5/fast] Error 2
scateu commented 5 years ago

same problem in

root@Pybombs:~/gnuradio-prefix# uname -a
Linux Pybombs 4.15.0-1031-aws #33-Ubuntu SMP Fri Dec 7 09:32:27 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
root@Pybombs:~/gnuradio-prefix# cat /etc/issue
Ubuntu 18.04.1 LTS \n \l
scateu commented 5 years ago

and the same in Ubuntu 14.04.5 LTS:

Linux vm 3.13.0-149-generic #199-Ubuntu SMP Thu May 17 10:12:50 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
py2sdr commented 4 years ago

I had the same issue.

In my case, the issue got resolved by installing python3-mako and python3-numpy

texadactyl commented 4 years ago

I had the exact same symptom on a Raspberry Pi 3B running Raspbian Buster up-to-date. The packages python3-mako and python3-numpy are installed.

playaspec commented 4 years ago

One more for the pile. Ubuntu 16.04. I completely purged all previous instances of additional python packages. 16.04 ships with python 2.7.x and 3.5.x, but newest gnuradio through pybombs requires 3.6.x. I added the deadsnakes PPA, and installed python 3.6 and pip from that archive. Set 3.6 to be the default though update-alternatives, then installed pybombs following the instructions at: https://github.com/gnuradio/pybombs, eliminating any remaining missing dependencies along the way. Current cmake (3.17.0) and latest volk (2.2.0) built from source. Numpy (1:1.11.0-1ubuntu1, both 2.7 and 3.6) and mako (1.0.3+ds1-1ubuntu1 2.7 and 3.6) are default packages. System libpthreads is default (libpthread-stubs0-dev/xenial). GCC Ubuntu 5.4.0-6ubuntu1~16.04.12.

I've spent better than 24 hours of in the chair beating on this trying to get it to build, but it always craps out at this same spot. The error log file:

/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp reads:

Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD failed with the following output:
Change Dir: /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_312c5/fast && /usr/bin/make -f CMakeFiles/cmTC_312c5.dir/build.make CMakeFiles/cmTC_312c5.dir/build
make[1]: Entering directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_312c5.dir/src.c.o
/usr/bin/cc   -std=gnu99 -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized -DCMAKE_HAVE_LIBC_PTHREAD   -o CMakeFiles/cmTC_312c5.dir/src.c.o   -c /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/src.c
Linking C executable cmTC_312c5
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_312c5.dir/link.txt --verbose=1
/usr/bin/cc  -std=gnu99 -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized -DCMAKE_HAVE_LIBC_PTHREAD    -rdynamic CMakeFiles/cmTC_312c5.dir/src.c.o  -o cmTC_312c5
CMakeFiles/cmTC_312c5.dir/src.c.o: In function `main':
src.c:(.text+0x3c): undefined reference to `pthread_create'
src.c:(.text+0x48): undefined reference to `pthread_detach'
src.c:(.text+0x54): undefined reference to `pthread_cancel'
src.c:(.text+0x65): undefined reference to `pthread_join'
src.c:(.text+0x79): undefined reference to `pthread_atfork'
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_312c5.dir/build.make:103: recipe for target 'cmTC_312c5' failed
make[1]: *** [cmTC_312c5] Error 1
make[1]: Leaving directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Makefile:138: recipe for target 'cmTC_312c5/fast' failed
make: *** [cmTC_312c5/fast] Error 2

Source file was:
#include <pthread.h>

void* test_func(void* data)
{
  return data;
}

int main(void)
{
  pthread_t thread;
  pthread_create(&thread, NULL, test_func, NULL);
  pthread_detach(thread);
  pthread_cancel(thread);
  pthread_join(thread, NULL);
  pthread_atfork(NULL, NULL, NULL);
  pthread_exit(NULL);

  return 0;
}

Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_d6090/fast && /usr/bin/make -f CMakeFiles/cmTC_d6090.dir/build.make CMakeFiles/cmTC_d6090.dir/build
make[1]: Entering directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_d6090.dir/CheckFunctionExists.c.o
/usr/bin/cc   -std=gnu99 -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTC_d6090.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-3.17/Modules/CheckFunctionExists.c
Linking C executable cmTC_d6090
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d6090.dir/link.txt --verbose=1
/usr/bin/cc  -std=gnu99 -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized -DCHECK_FUNCTION_EXISTS=pthread_create    -rdynamic CMakeFiles/cmTC_d6090.dir/CheckFunctionExists.c.o  -o cmTC_d6090  -lpthreads
/usr/bin/ld: cannot find -lpthreads
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_d6090.dir/build.make:103: recipe for target 'cmTC_d6090' failed
make[1]: *** [cmTC_d6090] Error 1
make[1]: Leaving directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Makefile:138: recipe for target 'cmTC_d6090/fast' failed
make: *** [cmTC_d6090/fast] Error 2

Determining if the include file intrin.h exists failed with the following output:
Change Dir: /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_8533e/fast && /usr/bin/make -f CMakeFiles/cmTC_8533e.dir/build.make CMakeFiles/cmTC_8533e.dir/build
make[1]: Entering directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_8533e.dir/CheckIncludeFile.c.o
/usr/bin/cc   -std=gnu99 -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized -Wall    -o CMakeFiles/cmTC_8533e.dir/CheckIncludeFile.c.o   -c /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c:1:20: fatal error: intrin.h: No such file or directory
compilation terminated.
CMakeFiles/cmTC_8533e.dir/build.make:82: recipe for target 'CMakeFiles/cmTC_8533e.dir/CheckIncludeFile.c.o' failed
make[1]: *** [CMakeFiles/cmTC_8533e.dir/CheckIncludeFile.c.o] Error 1
make[1]: Leaving directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Makefile:138: recipe for target 'cmTC_8533e/fast' failed

Performing C++ SOURCE FILE Test HAVE_WERROR_UNUSED_CMD_LINE_ARG failed with the following output:
Change Dir: /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_075f3/fast && /usr/bin/make -f CMakeFiles/cmTC_075f3.dir/build.make CMakeFiles/cmTC_075f3.dir/build
make[1]: Entering directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_075f3.dir/src.cxx.o
/usr/bin/c++    -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized -Wall -DHAVE_WERROR_UNUSED_CMD_LINE_ARG   -Werror=unused-command-line-argument -o CMakeFiles/cmTC_075f3.dir/src.cxx.o -c /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/src.cxx
cc1plus: error: -Werror=unused-command-line-argument: no option -Wunused-command-line-argument
CMakeFiles/cmTC_075f3.dir/build.make:82: recipe for target 'CMakeFiles/cmTC_075f3.dir/src.cxx.o' failed
make[1]: *** [CMakeFiles/cmTC_075f3.dir/src.cxx.o] Error 1
make[1]: Leaving directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Makefile:138: recipe for target 'cmTC_075f3/fast' failed
make: *** [cmTC_075f3/fast] Error 2

Source file was:
int main() { return 0; }
Performing C++ SOURCE FILE Test have_mfloat_abi_softfp failed with the following output:
Change Dir: /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_2a2ed/fast && /usr/bin/make -f CMakeFiles/cmTC_2a2ed.dir/build.make CMakeFiles/cmTC_2a2ed.dir/build
make[1]: Entering directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_2a2ed.dir/src.cxx.o
/usr/bin/c++    -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized -Wall -Dhave_mfloat_abi_softfp   -mfloat-abi=softfp -o CMakeFiles/cmTC_2a2ed.dir/src.cxx.o -c /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/src.cxx
c++: error: unrecognized command line option '-mfloat-abi=softfp'
CMakeFiles/cmTC_2a2ed.dir/build.make:82: recipe for target 'CMakeFiles/cmTC_2a2ed.dir/src.cxx.o' failed
make[1]: *** [CMakeFiles/cmTC_2a2ed.dir/src.cxx.o] Error 1
make[1]: Leaving directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Makefile:138: recipe for target 'cmTC_2a2ed/fast' failed
make: *** [cmTC_2a2ed/fast] Error 2

Source file was:
int main() { return 0; }
Performing C++ SOURCE FILE Test have_mfloat_abi_hard failed with the following output:
Change Dir: /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_425ce/fast && /usr/bin/make -f CMakeFiles/cmTC_425ce.dir/build.make CMakeFiles/cmTC_425ce.dir/build
make[1]: Entering directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_425ce.dir/src.cxx.o
/usr/bin/c++    -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized -Wall -Dhave_mfloat_abi_hard   -mfloat-abi=hard -o CMakeFiles/cmTC_425ce.dir/src.cxx.o -c /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/src.cxx
c++: error: unrecognized command line option '-mfloat-abi=hard'
CMakeFiles/cmTC_425ce.dir/build.make:82: recipe for target 'CMakeFiles/cmTC_425ce.dir/src.cxx.o' failed
make[1]: *** [CMakeFiles/cmTC_425ce.dir/src.cxx.o] Error 1
make[1]: Leaving directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Makefile:138: recipe for target 'cmTC_425ce/fast' failed
make: *** [cmTC_425ce/fast] Error 2

Source file was:
int main() { return 0; }
Performing C++ SOURCE FILE Test have_mfpu_neon failed with the following output:
Change Dir: /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_16845/fast && /usr/bin/make -f CMakeFiles/cmTC_16845.dir/build.make CMakeFiles/cmTC_16845.dir/build
make[1]: Entering directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_16845.dir/src.cxx.o
/usr/bin/c++    -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized -Wall -Dhave_mfpu_neon   -mfpu=neon -o CMakeFiles/cmTC_16845.dir/src.cxx.o -c /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/src.cxx
c++: error: unrecognized command line option '-mfpu=neon'
CMakeFiles/cmTC_16845.dir/build.make:82: recipe for target 'CMakeFiles/cmTC_16845.dir/src.cxx.o' failed
make[1]: *** [CMakeFiles/cmTC_16845.dir/src.cxx.o] Error 1
make[1]: Leaving directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Makefile:138: recipe for target 'cmTC_16845/fast' failed
make: *** [cmTC_16845/fast] Error 2

Source file was:
int main() { return 0; }
Performing C++ SOURCE FILE Test have_m32 failed with the following output:
Change Dir: /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_bbbb3/fast && /usr/bin/make -f CMakeFiles/cmTC_bbbb3.dir/build.make CMakeFiles/cmTC_bbbb3.dir/build
make[1]: Entering directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_bbbb3.dir/src.cxx.o
/usr/bin/c++    -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized -Wall -Dhave_m32   -m32 -o CMakeFiles/cmTC_bbbb3.dir/src.cxx.o -c /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/src.cxx
Linking CXX executable cmTC_bbbb3
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bbbb3.dir/link.txt --verbose=1
/usr/bin/c++   -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized -Wall -Dhave_m32    -rdynamic CMakeFiles/cmTC_bbbb3.dir/src.cxx.o  -o cmTC_bbbb3
/usr/bin/ld: i386 architecture of input file `CMakeFiles/cmTC_bbbb3.dir/src.cxx.o' is incompatible with i386:x86-64 output
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_bbbb3.dir/build.make:103: recipe for target 'cmTC_bbbb3' failed
make[1]: *** [cmTC_bbbb3] Error 1
make[1]: Leaving directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Makefile:138: recipe for target 'cmTC_bbbb3/fast' failed
make: *** [cmTC_bbbb3/fast] Error 2

Source file was:
int main() { return 0; }
Determining if the include file io.h exists failed with the following output:
Change Dir: /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_84bc1/fast && /usr/bin/make -f CMakeFiles/cmTC_84bc1.dir/build.make CMakeFiles/cmTC_84bc1.dir/build
make[1]: Entering directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_84bc1.dir/CheckIncludeFile.cxx.o
/usr/bin/c++    -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized    -o CMakeFiles/cmTC_84bc1.dir/CheckIncludeFile.cxx.o -c /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/CheckIncludeFile.cxx
/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/CheckIncludeFile.cxx:1:16: fatal error: io.h: No such file or directory
compilation terminated.
CMakeFiles/cmTC_84bc1.dir/build.make:82: recipe for target 'CMakeFiles/cmTC_84bc1.dir/CheckIncludeFile.cxx.o' failed
make[1]: *** [CMakeFiles/cmTC_84bc1.dir/CheckIncludeFile.cxx.o] Error 1
make[1]: Leaving directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Makefile:138: recipe for target 'cmTC_84bc1/fast' failed
make: *** [cmTC_84bc1/fast] Error 2

Determining if the include file dev/ppbus/ppi.h exists failed with the following output:
Change Dir: /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_01e63/fast && /usr/bin/make -f CMakeFiles/cmTC_01e63.dir/build.make CMakeFiles/cmTC_01e63.dir/build
make[1]: Entering directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_01e63.dir/CheckIncludeFile.cxx.o
/usr/bin/c++    -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized    -o CMakeFiles/cmTC_01e63.dir/CheckIncludeFile.cxx.o -c /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/CheckIncludeFile.cxx
/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/CheckIncludeFile.cxx:1:27: fatal error: dev/ppbus/ppi.h: No such file or directory
compilation terminated.
CMakeFiles/cmTC_01e63.dir/build.make:82: recipe for target 'CMakeFiles/cmTC_01e63.dir/CheckIncludeFile.cxx.o' failed
make[1]: *** [CMakeFiles/cmTC_01e63.dir/CheckIncludeFile.cxx.o] Error 1
make[1]: Leaving directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Makefile:138: recipe for target 'cmTC_01e63/fast' failed
make: *** [cmTC_01e63/fast] Error 2

Performing C++ SOURCE FILE Test HAVE_SSLEEP failed with the following output:
Change Dir: /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_88bd7/fast && /usr/bin/make -f CMakeFiles/cmTC_88bd7.dir/build.make CMakeFiles/cmTC_88bd7.dir/build
make[1]: Entering directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_88bd7.dir/src.cxx.o
/usr/bin/c++    -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized -DHAVE_SSLEEP   -o CMakeFiles/cmTC_88bd7.dir/src.cxx.o -c /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/src.cxx
/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/src.cxx:2:25: fatal error: Winbase.h: No such file or directory
compilation terminated.
CMakeFiles/cmTC_88bd7.dir/build.make:82: recipe for target 'CMakeFiles/cmTC_88bd7.dir/src.cxx.o' failed
make[1]: *** [CMakeFiles/cmTC_88bd7.dir/src.cxx.o] Error 1
make[1]: Leaving directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Makefile:138: recipe for target 'cmTC_88bd7/fast' failed
make: *** [cmTC_88bd7/fast] Error 2

Source file was:

    #include <Winbase.h>
    int main(){Sleep(0); return 0;}

Performing C++ SOURCE FILE Test HAVE_CREATEFILEMAPPING failed with the following output:
Change Dir: /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_33062/fast && /usr/bin/make -f CMakeFiles/cmTC_33062.dir/build.make CMakeFiles/cmTC_33062.dir/build
make[1]: Entering directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_33062.dir/src.cxx.o
/usr/bin/c++    -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized -DHAVE_CREATEFILEMAPPING   -o CMakeFiles/cmTC_33062.dir/src.cxx.o -c /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/src.cxx
/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/src.cxx:2:25: fatal error: windows.h: No such file or directory
compilation terminated.
CMakeFiles/cmTC_33062.dir/build.make:82: recipe for target 'CMakeFiles/cmTC_33062.dir/src.cxx.o' failed
make[1]: *** [CMakeFiles/cmTC_33062.dir/src.cxx.o] Error 1
make[1]: Leaving directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Makefile:138: recipe for target 'cmTC_33062/fast' failed
make: *** [cmTC_33062/fast] Error 2

Source file was:

    #include <windows.h>
    int main(){
        HANDLE handle;
        int size;
        LPCTSTR lpName;
        handle = CreateFileMapping(
                         INVALID_HANDLE_VALUE,    // use paging file
                         NULL,                    // default security
                         PAGE_READWRITE,          // read/write access
                         0,                       // max. object size
                         size,                    // buffer size
                         lpName);                 // name of mapping object
        return 0;
    }
Determining if the include file windows.h exists failed with the following output:
Change Dir: /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_11a7a/fast && /usr/bin/make -f CMakeFiles/cmTC_11a7a.dir/build.make CMakeFiles/cmTC_11a7a.dir/build
make[1]: Entering directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_11a7a.dir/CheckIncludeFile.cxx.o
/usr/bin/c++    -fvisibility=hidden -Wsign-compare -Wall -Wno-uninitialized    -o CMakeFiles/cmTC_11a7a.dir/CheckIncludeFile.cxx.o -c /home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/CheckIncludeFile.cxx
/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp/CheckIncludeFile.cxx:1:21: fatal error: windows.h: No such file or directory
compilation terminated.
CMakeFiles/cmTC_11a7a.dir/build.make:82: recipe for target 'CMakeFiles/cmTC_11a7a.dir/CheckIncludeFile.cxx.o' failed
make[1]: *** [CMakeFiles/cmTC_11a7a.dir/CheckIncludeFile.cxx.o] Error 1
make[1]: Leaving directory '/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp'
Makefile:138: recipe for target 'cmTC_11a7a/fast' failed
make: *** [cmTC_11a7a/fast] Error 2

While I'm not a professional developer, I am a sysadmin by day, and usually pretty adept at solving issues like this, but this one has got me. If I had to guess, it has something to do with gnuradio's cmake environment detection missing an edge case that should otherwise be valid. Any help would be appreciated.

velichkov commented 4 years ago

Hi @playaspec,

Ubuntu 16.04. I've spent better than 24 hours of in the chair beating on this trying to get it to build, but it always craps out at this same spot. The error log file

An honest question: why did you spent so much time trying to install the latest version of gnuradio on such an old Ubuntu version? Why don't you update your Ubuntu to a more recent version and then install gnuradio 3.8 from the gnuradio's ppa repository?

/home/playaspec/Dev/gnuradio-3.7-pybombs/src/gnuradio/build/CMakeFiles/CMakeTmp reads:

Don't look in CMakeFiles/CMakeTmp or CMakeFiles/CMakeError.log files, there are a lot of error there and that's normal. Instead provide the full cmake output from the terminal (not the CMakeOutput.log file) and attach it as a file as pasting long outputs (as in your previous message) makes the discussion hard to follow.

cbdonohue commented 2 years ago

Same thing happening on a fresh install of Ubuntu 21.04.

RESOLVED by installing mako pip3 install mako

(venv) chris@chris:~/gnuradio$ ls /usr/lib/x86_64-linux-gnu -1 | grep pthread
libevent_pthreads-2.1.so.7
libevent_pthreads-2.1.so.7.0.1
libevent_pthreads.a
libevent_pthreads.so
libgpgme-pthread.so.11
libpthread-2.33.so
libpthread.a
libpthread.so
libpthread.so.0
(venv) chris@chris:~/gnuradio$ uname -ar
Linux chris 5.11.0-37-generic #41-Ubuntu SMP Mon Sep 20 16:39:20 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
(venv) chris@chris:~/gnuradio$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 21.04
Release:    21.04
Codename:   hirsute
(venv) chris@chris:~/gnuradio$ pybombs prefix init prefix -R gnuradio-default
[INFO] Prefix Python version is: 3.9.5
[INFO] PyBOMBS Version 2.3.5
[WARNING] There already is a prefix in `/home/chris/gnuradio/prefix'.
Continue using this path Y/[N]? y
[INFO] Prefix Python version is: 3.9.5
[INFO] Prefix Python version is: 3.9.5
[INFO] Installing default packages for prefix...
[INFO] 
  - gnuradio
[INFO] Phase 1: Creating install tree and installing binary packages:
Install tree:
|
\- gnuradio
   |
   +- libvolk
   |
   \- uhd
[INFO] Phase 1 complete: All binary dependencies installed.
[INFO] Phase 2: Recursively installing source packages to prefix:
[INFO] Installing package: uhd
[WARNING] Build dir already exists: /home/chris/gnuradio/prefix/src/uhd/host/build
Configuring: (100%) [============================================================================================================================================================================================]
[WARNING] Configuration failed. Re-trying with higher verbosity.
-- 
-- Configuring the Python interpreter...
-- Manually determining build Python version...
-- Python interpreter: /home/chris/gnuradio/venv/bin/python3.9 Version: 3.9.5
-- Override with: -DPYTHON_EXECUTABLE=<path-to-python>
-- Manually determining runtime Python version...
-- Python runtime interpreter: /home/chris/gnuradio/venv/bin/python3.9 Version: 3.9.5
-- Override with: -DRUNTIME_PYTHON_EXECUTABLE=<path-to-python>
-- Finding Python Libraries...
-- Python Libraries: /usr/lib/x86_64-linux-gnu/libpython3.9.so
-- Python include directories: /usr/include/python3.9
-- Operating on release branch (UHD-3.15.LTS).
-- Using UHD Images Directory: /home/chris/gnuradio/prefix/share/uhd/images
-- 
-- Configuring Boost C++ Libraries...
-- 
-- Checking for Boost version 1.58 or greater
--   Looking for required Boost components...
--   Enabling Boost Error Code Header Only
--     Disabling boost::asio use of std::string_view
--   Boost version: 1.74.0
--   Boost include directories: /usr/include
--   Boost library directories: /usr/lib/x86_64-linux-gnu
--   Boost libraries: Boost::chrono;Boost::date_time;Boost::filesystem;Boost::program_options;Boost::regex;Boost::unit_test_framework;Boost::serialization;Boost::thread;Boost::system
-- Looking for Boost version 1.58 or greater - found
-- 
-- Python checking for Python version 2.7 or greater
-- Python checking for Python version 2.7 or greater - found
-- 
-- Python checking for Mako templates 0.4.2 or greater
-- Python checking for Mako templates 0.4.2 or greater - "import mako" failed
-- 
-- Python checking for requests 2.0 or greater
-- Python checking for requests 2.0 or greater - "import requests" failed
-- 
-- Python checking for numpy 1.7 or greater
-- Python checking for numpy 1.7 or greater - "import numpy" failed
-- 
-- Configuring LibUHD support...
--   Dependency Boost_FOUND = TRUE
--   Dependency HAVE_PYTHON_PLAT_MIN_VERSION = TRUE
--   Dependency HAVE_PYTHON_MODULE_MAKO = FALSE
CMake Error at cmake/Modules/UHDComponent.cmake:59 (message):
  Dependencies for required component LibUHD not met.
Call Stack (most recent call first):
  CMakeLists.txt:363 (LIBUHD_REGISTER_COMPONENT)

-- Configuring incomplete, errors occurred!
See also "/home/chris/gnuradio/prefix/src/uhd/host/build/CMakeFiles/CMakeOutput.log".
See also "/home/chris/gnuradio/prefix/src/uhd/host/build/CMakeFiles/CMakeError.log".
[ERROR] Configuration failed after running at least twice.
[ERROR] Problem occurred while building package uhd:
Configuration failed
[ERROR] Error installing package uhd. Aborting.
(venv) chris@chris:~/gnuradio$ cat /home/chris/gnuradio/prefix/src/uhd/host/build/CMakeFiles/CMakeError.log
Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD failed with the following output:
Change Dir: /home/chris/gnuradio/prefix/src/uhd/host/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/gmake cmTC_bd390/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_bd390.dir/build.make CMakeFiles/cmTC_bd390.dir/build
gmake[1]: Entering directory '/home/chris/gnuradio/prefix/src/uhd/host/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_bd390.dir/src.c.o
/usr/bin/cc   -DCMAKE_HAVE_LIBC_PTHREAD -o CMakeFiles/cmTC_bd390.dir/src.c.o -c /home/chris/gnuradio/prefix/src/uhd/host/build/CMakeFiles/CMakeTmp/src.c
Linking C executable cmTC_bd390
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bd390.dir/link.txt --verbose=1
/usr/bin/cc  -DCMAKE_HAVE_LIBC_PTHREAD CMakeFiles/cmTC_bd390.dir/src.c.o -o cmTC_bd390 
/usr/bin/ld: CMakeFiles/cmTC_bd390.dir/src.c.o: in function `main':
src.c:(.text+0x46): undefined reference to `pthread_create'
/usr/bin/ld: src.c:(.text+0x52): undefined reference to `pthread_detach'
/usr/bin/ld: src.c:(.text+0x5e): undefined reference to `pthread_cancel'
/usr/bin/ld: src.c:(.text+0x6f): undefined reference to `pthread_join'
collect2: error: ld returned 1 exit status
gmake[1]: *** [CMakeFiles/cmTC_bd390.dir/build.make:106: cmTC_bd390] Error 1
gmake[1]: Leaving directory '/home/chris/gnuradio/prefix/src/uhd/host/build/CMakeFiles/CMakeTmp'
gmake: *** [Makefile:140: cmTC_bd390/fast] Error 2

Source file was:
#include <pthread.h>

void* test_func(void* data)
{
  return data;
}

int main(void)
{
  pthread_t thread;
  pthread_create(&thread, NULL, test_func, NULL);
  pthread_detach(thread);
  pthread_cancel(thread);
  pthread_join(thread, NULL);
  pthread_atfork(NULL, NULL, NULL);
  pthread_exit(NULL);

  return 0;
}

Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/chris/gnuradio/prefix/src/uhd/host/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/gmake cmTC_61123/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_61123.dir/build.make CMakeFiles/cmTC_61123.dir/build
gmake[1]: Entering directory '/home/chris/gnuradio/prefix/src/uhd/host/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_61123.dir/CheckFunctionExists.c.o
/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_61123.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.18/Modules/CheckFunctionExists.c
Linking C executable cmTC_61123
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_61123.dir/link.txt --verbose=1
/usr/bin/cc  -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTC_61123.dir/CheckFunctionExists.c.o -o cmTC_61123  -lpthreads 
/usr/bin/ld: cannot find -lpthreads
collect2: error: ld returned 1 exit status
gmake[1]: *** [CMakeFiles/cmTC_61123.dir/build.make:106: cmTC_61123] Error 1
gmake[1]: Leaving directory '/home/chris/gnuradio/prefix/src/uhd/host/build/CMakeFiles/CMakeTmp'
gmake: *** [Makefile:140: cmTC_61123/fast] Error 2
velichkov commented 2 years ago

Hi @cbdonohue,

-- Configuring LibUHD support... -- Dependency Boost_FOUND = TRUE -- Dependency HAVE_PYTHON_PLAT_MIN_VERSION = TRUE -- Dependency HAVE_PYTHON_MODULE_MAKO = FALSE CMake Error at cmake/Modules/UHDComponent.cmake:59 (message): Dependencies for required component LibUHD not met.

This is the important part - libuhd needs python mako. I don't know why pybombs has not installed it as it is listed as dependency of uhd, see uhd.lwr and this mako.lwr

-- Python interpreter: /home/chris/gnuradio/venv/bin/python3.9 Version: 3.9.5

One possible reason is that it seems you are installing in a virtual environment. I'm not sure whether pybombs supports virtualenv or not. You can try manually installing python mako in this environment. I don't know how.

cat /home/chris/gnuradio/prefix/src/uhd/host/build/CMakeFiles/CMakeError.log

As I've written in my previous message you need to ignore CMakeError.log, it is full of errors but that is normal.

P.S. Please ask for help building software on chat.gnuradio.org or the mailing list. We use the issue tracker for bug reports and feature requests.

Regards, Vasil

playaspec commented 2 years ago

An honest question: why did you spent so much time trying to install the latest version of gnuradio on such an old Ubuntu version? Why don't you update your Ubuntu to a more recent version and then install gnuradio 3.8 from the gnuradio's ppa repository?

At the time of my post, Ubuntu 16.04, which is an LTS (Long Term Support) still had another 13 months of official support. Just because it's not the newest doesn't mean it's obsolete. That particular machine is used to support production data acquisition systems used for scientific research. It's neither trivial nor practical to blindly upgrade just 'because'.

willcode commented 2 years ago

It sound like this issue was resolved one way or another, so closing.