Segmentation fault with current gnuradio version on USRP1

Hello,

I would like to ask for an advice - I have troubles running current
gnuradio git version with USRP1 using UHD.

I have installed UHD drivers with downloaded firmware and FPGA images
and compiled the host code; uhd_usrp_probe seems to work:
linux; GNU C++ version 4.5.3; Boost_104700; UHD_003.003.002-unknown

– Loading firmware image: /usr/local/share/uhd/images/usrp1_fw.ihx…
done
– Opening a USRP1 device…
– Loading FPGA image: /usr/local/share/uhd/images/usrp1_fpga.rbf…
done
– Using FPGA clock rate of 64.000000MHz…


/
| Device: USRP1 Device
| _____________________________________________________
| /
| | Mboard: USRP1 (Classic)
| | serial: 46390f8b
| |
| | Time sources: none
| | Clock sources: internal
| | Sensors:
| | _____________________________________________________
| | /
| | | RX DSP: 0
| | | Freq range: -32.000 to 32.000 Mhz
| | _____________________________________________________
| | /
| | | RX DSP: 1
| | | Freq range: -32.000 to 32.000 Mhz
| | _____________________________________________________
| | /
| | | RX Dboard: A
| | | ID: WBX, WBX + Simple GDB (0x0053)
| | | _____________________________________________________
| | | /
| | | | RX Subdev: 0
| | | | Name: WBX RX + Simple GDB
| | | | Antennas: TX/RX, RX2
| | | | Sensors: lo_locked
| | | | Freq range: 68.750 to 2200.000 Mhz
| | | | Gain range PGA0: 0.0 to 31.5 step 0.5 dB
| | | | Connection Type: IQ
| | | | Uses LO offset: No
| | | _____________________________________________________
| | | /
| | | | RX Codec: A
| | | | Name: ad9522
| | | | Gain range pga: 0.0 to 20.0 step 1.0 dB
| | _____________________________________________________
| | /
| | | RX Dboard: B
| | | ID: DBSRX (0x0002)
| | | _____________________________________________________
| | | /
| | | | RX Subdev: 0
| | | | Name: DBSRX (0x0002)
| | | | Antennas: J3
| | | | Sensors: lo_locked
| | | | Freq range: 800.000 to 2400.000 Mhz
| | | | Gain range GC1: 0.0 to 56.0 step 0.5 dB
etc…

Then I installed gnuradio from git clone and configured it as:
./configure --enable-gr-uhd --enable-gr-noaa --enable-usrp2
–enable-usrp --enable-gr-usrp --enable-grc --enable-gr-audio-alsa
–enable-gr-trellis --disable-volk
I had to disable volk due to compilation errors (some 32-64 bit code
mismatch I guess).
It seems that old USRP (non-UHD) support has been already removed and
when I trysome UHD example, it always coredumps:

AFTER USRP POWER CYCLE
jiri@jp:/scratch/jiri/gnuradio/gr-uhd/examples/ ./usrp_wfm_rcv_pll.py
linux; GNU C++ version 4.5.3; Boost_104700; UHD_003.003.002-unknown

– Loading firmware image: /usr/local/share/uhd/images/usrp1_fw.ihx…
done
– Opening a USRP1 device…
– Loading FPGA image: /usr/local/share/uhd/images/usrp1_fpga.rbf…
done
(gdb) bt
#0 0x00000000034b0018 in ?? ()
#1 0x00007fbb65892cb2 in thread_proxy () from
/usr/lib64/libboost_thread-mt-1_42.so.1.42.0
#2 0x00007fbb671c5ca8 in start_thread () from /lib64/libpthread.so.0
#3 0x00007fbb66f0c1ad in clone () from /lib64/libc.so.6

WITHOUT POWER CYCLE
– Opening a USRP1 device…
– Using FPGA clock rate of 64.000000MHz…
Segmentation fault (core dumped)
#0 0x00007ffb61a855a4 in boost::thread::start_thread() () from
/usr/lib64/libboost_thread-mt-1_42.so.1.42.0
(gdb) bt
#0 0x00007ffb61a855a4 in boost::thread::start_thread() () from
/usr/lib64/libboost_thread-mt-1_42.so.1.42.0
#1 0x00007ffb5839d71b in boost::thread*
boost::thread_group::create_thread<boost::_bi::bind_t<void,
boost::_mfi::mf1<void, task_impl, boost::function<void ()> const&>,
boost::_bi::list2<boost::_bi::value<task_impl*>,
boost::_bi::value<boost::function<void ()> > > >

(boost::_bi::bind_t<void, boost::_mfi::mf1<void, task_impl,
boost::function<void ()> const&>,
boost::_bi::list2<boost::_bi::value<task_impl*>,
boost::_bi::value<boost::function<void ()> > > >) () from
/usr/local/lib64/libuhd.so.003
#2 0x00007ffb5839e5ca in task_impl::task_impl(boost::function<void ()>
const&) () from /usr/local/lib64/libuhd.so.003
#3 0x00007ffb5839bd71 in uhd::task::make(boost::function<void ()>
const&) () from /usr/local/lib64/libuhd.so.003
#4 0x00007ffb582d40c6 in usrp1_impl::io_init() () from
/usr/local/lib64/libuhd.so.003
#5 0x00007ffb582f440c in usrp1_impl::usrp1_impl(uhd::device_addr_t
const&) () from /usr/local/lib64/libuhd.so.003
#6 0x00007ffb582f5871 in usrp1_make(uhd::device_addr_t const&) () from
/usr/local/lib64/libuhd.so.003
#7 0x00007ffb582f952c in
boost::detail::function::function_invoker1<boost::shared_ptruhd::device
(*)(uhd::device_addr_t const&), boost::shared_ptruhd::device,
uhd::device_addr_t
const&>::invoke(boost::detail::function::function_buffer&,
uhd::device_addr_t const&) () from /usr/local/lib64/libuhd.so.003
#8 0x00007ffb583a34c3 in uhd::device::make(uhd::device_addr_t const&,
unsigned long) () from /usr/local/lib64/libuhd.so.003
#9 0x00007ffb581e9b49 in uhd::usrp::multi_usrp::make(uhd::device_addr_t
const&) () from /usr/local/lib64/libuhd.so.003
#10 0x00007ffb5868c3bb in uhd_usrp_source_impl::uhd_usrp_source_impl
(this=0x2f90950, device_addr=…, stream_args=…,
__in_chrg=, __vtt_parm=) at
gr_uhd_usrp_source.cc:68
#11 0x00007ffb5868322c in uhd_make_usrp_source (device_addr=…,
stream_args=…) at gr_uhd_usrp_source.cc:473
#12 0x00007ffb588f572e in _wrap_usrp_source__SWIG_1 (args=) at python/uhd_swig.cc:30153
#13 _wrap_usrp_source (self=, args=) at
python/uhd_swig.cc:30188
#14 0x00007ffb636b1062 in PyEval_EvalFrameEx () from
/usr/lib64/libpython2.7.so.1.0
#15 0x00007ffb636b2f27 in PyEval_EvalCodeEx () from
/usr/lib64/libpython2.7.so.1.0

On the other hand, I have also funcube-dongle, and the same version of
gnuradio
works fine with that device.
I have python 2.7, boost 1.42.0 (with both 1.46 and 1.47 I got
compilation errors in gnuradio), gcc (Gentoo 4.5.3-r1 p1.0, pie-0.4.5)
4.5.3,
running 3.1.5-gentoo #2 SMP on x86_64 Intel® Core™ i7 CPU Q 740 @
1.73GHz
HP 8540w laptop.

I tried also to install gnuradio-3.4.2: this has still the old USRP
support, which works fine, but UHD segfaults as well (and funcube does
not work).

Do you have any idea what to do?
Thanks very much for help.
Best regards,
Jiri Pittner

I have installed git version of UHD drivers and images from
UHD-images-003.004.000-322fb97.tar.gz.
uhd_usrp_probe runs again well but,
unfortunately, the problem persists:
usrp_wfm_rcv.py
linux; GNU C++ version 4.5.3; Boost_104700; UHD_003.004.000-5b06adb

Segmentation fault (core dumped)

exactly the same behavior as before.
From the backtrace the problem seems to be in threaded boost, which is
called from uhd drivers.
Any ideas how to fix it?
Thanks,
Jiri

There was an ABI change between Gnu Radio and UHD, so you have to
be running a newer UHD–current master is what I’d recommend.

Also,
you’ll find your world is better if you use build-gnuradio, if you’re on
Ubuntu or Fedora.

On Thu, 2 Feb 2012 21:41:50 +0100 (CET),
[email protected] wrote:

Hello,

I would like to ask
for an advice - I have troubles running current
gnuradio git version
with USRP1 using UHD.

I have installed UHD drivers with downloaded
firmware and FPGA images and compiled the host code; uhd_usrp_probe
seems to work:
linux; GNU C++ version 4.5.3; Boost_104700;
UHD_003.003.002-unknown

– Loading firmware image:
/usr/local/share/uhd/images/usrp1_fw.ihx… done
– Opening a USRP1
device…
– Loading FPGA image:
/usr/local/share/uhd/images/usrp1_fpga.rbf… done
– Using FPGA clock
rate of 64.000000MHz…


/
| Device:
USRP1 Device
| _____________________________________________________

| /

| | Mboard: USRP1 (Classic)
| | serial: 46390f8b
| |
| |
Time sources: none
| | Clock sources: internal
| | Sensors:
| |


| | /
| | | RX
DSP: 0
| | | Freq range: -32.000 to 32.000 Mhz
| |


| | /
| | | RX
DSP: 1
| | | Freq range: -32.000 to 32.000 Mhz
| |


| | /
| | | RX
Dboard: A
| | | ID: WBX, WBX + Simple GDB (0x0053)
| | |


| | | /
| | |
| RX Subdev: 0
| | | | Name: WBX RX + Simple GDB
| | | | Antennas:
TX/RX, RX2
| | | | Sensors: lo_locked
| | | | Freq range: 68.750 to
2200.000 Mhz
| | | | Gain range PGA0: 0.0 to 31.5 step 0.5 dB
| | |
| Connection Type: IQ
| | | | Uses LO offset: No
| | |


| | | /
| | |
| RX Codec: A
| | | | Name: ad9522
| | | | Gain range pga: 0.0 to
20.0 step 1.0 dB
| |


| | /
| | | RX
Dboard: B
| | | ID: DBSRX (0x0002)
| | |


| | | /
| | |
| RX Subdev: 0
| | | | Name: DBSRX (0x0002)
| | | | Antennas: J3
|
| | | Sensors: lo_locked
| | | | Freq range: 800.000 to 2400.000 Mhz

| | | | Gain range GC1: 0.0 to 56.0 step 0.5 dB

etc…

Then I
installed gnuradio from git clone and configured it as:
./configure
–enable-gr-uhd --enable-gr-noaa --enable-usrp2 --enable-usrp
–enable-gr-usrp --enable-grc --enable-gr-audio-alsa --enable-gr-trellis
–disable-volk
I had to disable volk due to compilation errors (some
32-64 bit code mismatch I guess).
It seems that old USRP (non-UHD)
support has been already removed and when I trysome UHD example, it
always coredumps:

AFTER USRP POWER CYCLE

jiri@jp:/scratch/jiri/gnuradio/gr-uhd/examples/ ./usrp_wfm_rcv_pll.py

linux; GNU C++ version 4.5.3; Boost_104700; UHD_003.003.002-unknown

– Loading firmware image: /usr/local/share/uhd/images/usrp1_fw.ihx…
done

– Opening a USRP1 device…
– Loading FPGA image:
/usr/local/share/uhd/images/usrp1_fpga.rbf… done
(gdb) bt
#0
0x00000000034b0018 in ?? ()
#1 0x00007fbb65892cb2 in thread_proxy ()
from /usr/lib64/libboost_thread-mt-1_42.so.1.42.0
#2
0x00007fbb671c5ca8 in start_thread () from /lib64/libpthread.so.0
#3
0x00007fbb66f0c1ad in clone () from /lib64/libc.so.6

WITHOUT POWER
CYCLE
– Opening a USRP1 device…
– Using FPGA clock rate of
64.000000MHz…
Segmentation fault (core dumped)
#0
0x00007ffb61a855a4 in boost::thread::start_thread() () from
/usr/lib64/libboost_thread-mt-1_42.so.1.42.0
(gdb) bt
#0
0x00007ffb61a855a4 in boost::thread::start_thread() () from
/usr/lib64/libboost_thread-mt-1_42.so.1.42.0
#1 0x00007ffb5839d71b in
boost::thread* boost::thread_group::create_thread const&>,
boost::_bi::list2, boost::_bi::value > > > >(boost::_bi::bind_t const&>,
boost::_bi::list2, boost::_bi::value > > >) () from
/usr/local/lib64/libuhd.so.003
#2 0x00007ffb5839e5ca in
task_impl::task_impl(boost::function const&) () from
/usr/local/lib64/libuhd.so.003
#3 0x00007ffb5839bd71 in
uhd::task::make(boost::function const&) () from
/usr/local/lib64/libuhd.so.003
#4 0x00007ffb582d40c6 in
usrp1_impl::io_init() () from /usr/local/lib64/libuhd.so.003
#5
0x00007ffb582f440c in usrp1_impl::usrp1_impl(uhd::device_addr_t const&)
() from /usr/local/lib64/libuhd.so.003
#6 0x00007ffb582f5871 in
usrp1_make(uhd::device_addr_t const&) () from
/usr/local/lib64/libuhd.so.003
#7 0x00007ffb582f952c in
boost::detail::function::function_invoker1 (*)(uhd::device_addr_t
const&), boost::shared_ptr, uhd::device_addr_t
const&>::invoke(boost::detail::function::function_buffer&,
uhd::device_addr_t const&) () from /usr/local/lib64/libuhd.so.003
#8
0x00007ffb583a34c3 in uhd::device::make(uhd::device_addr_t const&,
unsigned long) () from /usr/local/lib64/libuhd.so.003
#9
0x00007ffb581e9b49 in uhd::usrp::multi_usrp::make(uhd::device_addr_t
const&) () from /usr/local/lib64/libuhd.so.003
#10 0x00007ffb5868c3bb
in uhd_usrp_source_impl::uhd_usrp_source_impl (this=0x2f90950,
device_addr=…, stream_args=…,
__in_chrg=, __vtt_parm=) at
gr_uhd_usrp_source.cc:68
#11 0x00007ffb5868322c in
uhd_make_usrp_source (device_addr=…, stream_args=…) at
gr_uhd_usrp_source.cc:473
#12 0x00007ffb588f572e in
_wrap_usrp_source__SWIG_1 (args=) at python/uhd_swig.cc:30153
#13
_wrap_usrp_source (self=, args=) at python/uhd_swig.cc:30188
#14
0x00007ffb636b1062 in PyEval_EvalFrameEx () from
/usr/lib64/libpython2.7.so.1.0
#15 0x00007ffb636b2f27 in
PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0

On
the other hand, I have also funcube-dongle, and the same version of
gnuradio
works fine with that device.
I have python 2.7, boost
1.42.0 (with both 1.46 and 1.47 I got compilation errors in gnuradio),
gcc (Gentoo 4.5.3-r1 p1.0, pie-0.4.5) 4.5.3,
running 3.1.5-gentoo #2
SMP on x86_64 Intel(R) Core™ i7 CPU Q 740 @ 1.73GHz
HP 8540w
laptop.

I tried also to install gnuradio-3.4.2: this has still the
old USRP support, which works fine, but UHD segfaults as well (and
funcube does not work).

Do you have any idea what to do?
Thanks
very much for help.
Best regards,
Jiri Pittner


Discuss-gnuradio
mailing list
[email protected] [1]

Discuss-gnuradio Info Page [2]

Links:

On 02/02/2012 05:54 PM, Nick F. wrote:

Try recompiling gr-uhd and reinstalling.

–n

Might as well re-do the entire Gnu Radio build. It doesn’t take that
long.


Marcus L.
Principal Investigator
Shirleys Bay Radio Astronomy Consortium

This I did more than 10 times recently, testing also with 3.4.2,
carefully
deinstalling previously installed versions. It’s reasonably fast on
4-core
machine and as Gentoo user I am used to run some compilations :-).
As I wrote I got compilation errors with newer boost versions, I will
retry that and report them, since the backtrace shows problem is in
boost,
so when I am able to compile gnuradio with newer boost it might help.
Jiri

Try recompiling gr-uhd and reinstalling.

–n

After configuring current git version of Gnuradio as
/configure --enable-gr-uhd --enable-gr-noaa --enable-usrp2 --enable-usrp
–enable-gr-usrp --enable-grc --enable-gr-audio-alsa --enable-gr-trellis
–disable-volk
and running make, while boost-1.47 is installed, I am getting the
following error:

libtool: link: ( cd “.libs” && rm -f “libgruel.la” && ln -s
“…/libgruel.la” “libgruel.la” )
/bin/sh …/…/…/libtool --tag=CXX --mode=link g++ -g -O2 -Wall
-Woverloaded-virtual -Wno-uninitialized -pthread -o test_gruel
test_gruel.o -lboost_thread-1_42 -lboost_system-1_42
-lboost_filesystem-1_42 pmt/libpmt-qa.la libgruel.la -lltdl
libtool: link: g++ -g -O2 -Wall -Woverloaded-virtual -Wno-uninitialized
-pthread -o .libs/test_gruel test_gruel.o pmt/.libs/libpmt-qa.a
-L/usr/lib64 /usr/lib64/libcppunit.so ./.libs/libgruel.so
-lboost_system-1_42 -lboost_filesystem-1_42 -lboost_thread-1_42
/usr/lib64/libltdl.so -ldl -pthread
test_gruel.o: In function current_path': /usr/include/boost/filesystem/v3/operations.hpp:348: undefined reference toboost::filesystem3::detail::current_path(boost::system::error_code*)’
test_gruel.o: In function
boost::filesystem3::operator/(boost::filesystem3::path const&, boost::filesystem3::path const&)': /usr/include/boost/filesystem/v3/path.hpp:584: undefined reference toboost::filesystem3::path::operator/=(boost::filesystem3::path const&)’
test_gruel.o: In function is_directory': /usr/include/boost/filesystem/v3/operations.hpp:223: undefined reference toboost::filesystem3::detail::status(boost::filesystem3::path const&,
boost::system::error_code*)’
test_gruel.o: In function create_directory': /usr/include/boost/filesystem/v3/operations.hpp:324: undefined reference toboost::filesystem3::detail::create_directory(boost::filesystem3::path
const&, boost::system::error_code*)’
test_gruel.o: In function
boost::filesystem3::operator/(boost::filesystem3::path const&, boost::filesystem3::path const&)': /usr/include/boost/filesystem/v3/path.hpp:584: undefined reference toboost::filesystem3::path::operator/=(boost::filesystem3::path const&)’
test_gruel.o: In function __static_initialization_and_destruction_0': /usr/include/boost/system/error_code.hpp:214: undefined reference toboost::system::generic_category()’
/usr/include/boost/system/error_code.hpp:215: undefined reference to
boost::system::generic_category()' /usr/include/boost/system/error_code.hpp:216: undefined reference toboost::system::system_category()’
collect2: ld returned 1 exit status
make[7]: *** [test_gruel] Error 1
make[7]: Leaving directory `/scratch/jiri/gnuradio/gruel/src/lib’

With boost-1.46 it fails the same way. With boost-1.42 it compiles,
but I am getting the aforementioned segmentation fault.

Also, compilation with volk fails:
having boost-1.42,
./configure --enable-gr-uhd --enable-gr-noaa --enable-usrp2
–enable-usrp
–enable-gr-usrp --enable-grc --enable-gr-audio-alsa --enable-gr-trellis
make -j 8:
libtool: link: ar cru .libs/libvolk_ssse3_64.a
.libs/libvolk_ssse3_64_la-volk_machine_ssse3_64.o
libtool: link: ranlib .libs/libvolk_ssse3_64.a
libtool: link: ( cd “.libs” && rm -f “libvolk_ssse3_64.la” && ln -s
“…/libvolk_ssse3_64.la” “libvolk_ssse3_64.la” )
/bin/sh …/libtool --tag=CC --mode=link gcc -g -O2 -version-info
0:0:0
-lorc-0.4 -lorc-0.4 -o libvolk.la -rpath /usr/local/lib64
libvolk_la-volk.lo libvolk_la-volk_cpu.lo libvolk_la-volk_rank_archs.lo
libvolk_la-volk_prefs.lo libvolk_la-volk_machines.lo
…/orc/libvolk_orc.la
libvolk_avx_only.la libvolk_ssse3_32.la libvolk_sse3_64.la
libvolk_sse2_32.la libvolk_generic.la libvolk_sse4_2_64.la
libvolk_sse4_a_64.la libvolk_avx_64.la libvolk_sse4_1_32.la
libvolk_sse2_64.la libvolk_sse4_a_32.la libvolk_sse4_2_32.la
libvolk_avx_32.la libvolk_sse2_only.la libvolk_sse4_1_64.la
libvolk_sse3_32.la libvolk_ssse3_64.la
libtool: link: gcc -shared -fPIC -DPIC .libs/libvolk_la-volk.o
.libs/libvolk_la-volk_cpu.o .libs/libvolk_la-volk_rank_archs.o
.libs/libvolk_la-volk_prefs.o .libs/libvolk_la-volk_machines.o
-Wl,–whole-archive …/orc/.libs/libvolk_orc.a
./.libs/libvolk_avx_only.a
./.libs/libvolk_ssse3_32.a ./.libs/libvolk_sse3_64.a
./.libs/libvolk_sse2_32.a ./.libs/libvolk_generic.a
./.libs/libvolk_sse4_2_64.a ./.libs/libvolk_sse4_a_64.a
./.libs/libvolk_avx_64.a ./.libs/libvolk_sse4_1_32.a
./.libs/libvolk_sse2_64.a ./.libs/libvolk_sse4_a_32.a
./.libs/libvolk_sse4_2_32.a ./.libs/libvolk_avx_32.a
./.libs/libvolk_sse2_only.a ./.libs/libvolk_sse4_1_64.a
./.libs/libvolk_sse3_32.a ./.libs/libvolk_ssse3_64.a
-Wl,–no-whole-archive -lorc-0.4 -O2 -Wl,-soname -Wl,libvolk.so.0 -o
.libs/libvolk.so.0.0.0
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/…/…/…/…/x86_64-pc-linux-gnu/bin/ld:
i386 architecture of input file
./.libs/libvolk_ssse3_32.a(libvolk_ssse3_32_la-volk_machine_ssse3_32.o)' is incompatible with i386:x86-64 output /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: i386 architecture of input file./.libs/libvolk_sse2_32.a(libvolk_sse2_32_la-volk_machine_sse2_32.o)’
is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/…/…/…/…/x86_64-pc-linux-gnu/bin/ld:
i386 architecture of input file
./.libs/libvolk_sse4_1_32.a(libvolk_sse4_1_32_la-volk_machine_sse4_1_32.o)' is incompatible with i386:x86-64 output /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: i386 architecture of input file./.libs/libvolk_sse4_a_32.a(libvolk_sse4_a_32_la-volk_machine_sse4_a_32.o)’
is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/…/…/…/…/x86_64-pc-linux-gnu/bin/ld:
i386 architecture of input file
./.libs/libvolk_sse4_2_32.a(libvolk_sse4_2_32_la-volk_machine_sse4_2_32.o)' is incompatible with i386:x86-64 output /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: i386 architecture of input file./.libs/libvolk_avx_32.a(libvolk_avx_32_la-volk_machine_avx_32.o)’ is
incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/…/…/…/…/x86_64-pc-linux-gnu/bin/ld:
i386 architecture of input file
./.libs/libvolk_sse3_32.a(libvolk_sse3_32_la-volk_machine_sse3_32.o)' is incompatible with i386:x86-64 output ./.libs/libvolk_ssse3_32.a(libvolk_ssse3_32_la-volk_machine_ssse3_32.o): In functionvolk_32f_s32f_stddev_32f_a_generic’:
/scratch/jiri/gnuradio/volk/lib/…/include/volk/volk_32f_s32f_stddev_32f_a.h:136:
undefined reference to sqrtf' ./.libs/libvolk_ssse3_32.a(libvolk_ssse3_32_la-volk_machine_ssse3_32.o): In functionvolk_16ic_magnitude_16i_a_generic’:
/scratch/jiri/gnuradio/volk/lib/…/include/volk/volk_16ic_magnitude_16i_a.h:172:
undefined reference to `sqrtf’

and many undefined references to atan2f,powf,sincosf, etc. gfollow.

I have gcc (Gentoo 4.5.3-r1 p1.0, pie-0.4.5) 4.5.3 on X86_64 Intel®
Core™ i7 system.

Thanks for advices,

Jiri Pittner

Hi Jiri,

I’m using gentoo, too and it compiles with boost-1.47.0-r1. Do you have
some older files of boost installed while trying to compil with 1.47 ?

volk does not compile , because you have a 64 bit system.

I fixed this problem by deleting line 21 in volk/gen/archs.xml before
runnig boostrap
The line is

<overrule_val>x86_64</overrule_val>

I hope this helps.

What version of automake do you use ? I’m using 1.11.2 and getting
problems when running make install.

I’m curious if this happents on your system, too.

Volker

Am 03.02.2012 11:37, schrieb Jiri Pittner:

Volk seems to build just fine under Cmake on my 64-bit systems.

On Fri, 03 Feb 2012 16:53:19 +0100, Volker S. wrote:

Hi
Jiri,

I’m using gentoo, too and it compiles with boost-1.47.0-r1.
Do you have
some older files of boost installed while trying to
compil with 1.47 ?

volk does not compile , because you have a 64
bit system.

I fixed this problem by deleting line 21 in
volk/gen/archs.xml before
runnig boostrap
The line is

x86_64

I hope this helps.

What version of automake do you use ? I’m
using 1.11.2 and getting
problems when running make install.

I’m
curious if this happents on your system, too.

Volker

Am
03.02.2012 11:37, schrieb Jiri Pittner:

After configuring current git
version of Gnuradio as /configure --enable-gr-uhd --enable-gr-noaa
–enable-usrp2 --enable-usrp --enable-gr-usrp --enable-grc
–enable-gr-audio-alsa --enable-gr-trellis --disable-volk and running
make, while boost-1.47 is installed, I am getting the following error:
libtool: link: ( cd “.libs” && rm -f “libgruel.la” && ln -s
“…/libgruel.la” “libgruel.la” ) /bin/sh …/…/…/libtool --tag=CXX
–mode=link g++ -g -O2 -Wall -Woverloaded-virtual -Wno-uninitialized
-pthread -o test_gruel test_gruel.o -lboost_thread-1_42
-lboost_system-1_42 -lboost_filesystem-1_42 pmt/libpmt-qa.la libgruel.la
-lltdl libtool: link: g++ -g -O2 -Wall -Woverloaded-virtual
-Wno-uninitialized -pthread -o .libs/test_gruel test_gruel.o
pmt/.libs/libpmt-qa.a -L/usr/lib64 /usr/lib64/libcppunit.so
./.libs/libgruel.so -lboost_system-1_42 -lboost_filesystem-1_42
-lboost_thread-1_42 /usr/lib64/libltdl.so -ldl -pthread test_gruel.o: In
function current_path': /usr/include/boost/filesystem/v3/operations.hpp:348: undefined reference to boost::filesystem3::detail::current_path(boost::system::error_code*)’
test_gruel.o: In function
boost::filesystem3::operator/(boost::filesystem3::path const&, boost::filesystem3::path const&)': /usr/include/boost/filesystem/v3/path.hpp:584: undefined reference to boost::filesystem3::path::operator/=(boost::filesystem3::path const&)’
test_gruel.o: In function is_directory': /usr/include/boost/filesystem/v3/operations.hpp:223: undefined reference to boost::filesystem3::detail::status(boost::filesystem3::path const&,
boost::system::error_code*)’ test_gruel.o: In function
create_directory': /usr/include/boost/filesystem/v3/operations.hpp:324: undefined reference to boost::filesystem3::detail::create_directory(boost::filesystem3::path
const&, boost::system::error_code*)’ test_gruel.o: In function
boost::filesystem3::operator/(boost::filesystem3::path const&, boost::filesystem3::path const&)': /usr/include/boost/filesystem/v3/path.hpp:584: undefined reference to boost::filesystem3::path::operator/=(boost::filesystem3::path const&)’
test_gruel.o: In function __static_initialization_and_destruction_0': /usr/include/boost/system/error_code.hpp:214: undefined reference to boost::system::generic_category()’
/usr/include/boost/system/error_code.hpp:215: undefined reference to
boost::system::generic_category()' /usr/include/boost/system/error_code.hpp:216: undefined reference to boost::system::system_category()’ collect2: ld returned 1 exit status
make[7]: *** [test_gruel] Error 1 make[7]: Leaving directory
/scratch/jiri/gnuradio/gruel/src/lib' With boost-1.46 it fails the same way. With boost-1.42 it compiles, but I am getting the aforementioned segmentation fault. Also, compilation with volk fails: having boost-1.42, ./configure --enable-gr-uhd --enable-gr-noaa --enable-usrp2 --enable-usrp --enable-gr-usrp --enable-grc --enable-gr-audio-alsa --enable-gr-trellis make -j 8: libtool: link: ar cru .libs/libvolk_ssse3_64.a .libs/libvolk_ssse3_64_la-volk_machine_ssse3_64.o libtool: link: ranlib .libs/libvolk_ssse3_64.a libtool: link: ( cd ".libs" && rm -f "libvolk_ssse3_64.la" && ln -s "../libvolk_ssse3_64.la" "libvolk_ssse3_64.la" ) /bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -version-info 0:0:0 -lorc-0.4 -lorc-0.4 -o libvolk.la -rpath /usr/local/lib64 libvolk_la-volk.lo libvolk_la-volk_cpu.lo libvolk_la-volk_rank_archs.lo libvolk_la-volk_prefs.lo libvolk_la-volk_machines.lo ../orc/libvolk_orc.la libvolk_avx_only.la libvolk_ssse3_32.la libvolk_sse3_64.la libvolk_sse2_32.la libvolk_generic.la libvolk_sse4_2_64.la libvolk_sse4_a_64.la libvolk_avx_64.la libvolk_sse4_1_32.la libvolk_sse2_64.la libvolk_sse4_a_32.la libvolk_sse4_2_32.la libvolk_avx_32.la libvolk_sse2_only.la libvolk_sse4_1_64.la libvolk_sse3_32.la libvolk_ssse3_64.la libtool: link: gcc -shared -fPIC -DPIC .libs/libvolk_la-volk.o .libs/libvolk_la-volk_cpu.o .libs/libvolk_la-volk_rank_archs.o .libs/libvolk_la-volk_prefs.o .libs/libvolk_la-volk_machines.o -Wl,--whole-archive ../orc/.libs/libvolk_orc.a ./.libs/libvolk_avx_only.a ./.libs/libvolk_ssse3_32.a ./.libs/libvolk_sse3_64.a ./.libs/libvolk_sse2_32.a ./.libs/libvolk_generic.a ./.libs/libvolk_sse4_2_64.a ./.libs/libvolk_sse4_a_64.a ./.libs/libvolk_avx_64.a ./.libs/libvolk_sse4_1_32.a ./.libs/libvolk_sse2_64.a ./.libs/libvolk_sse4_a_32.a ./.libs/libvolk_sse4_2_32.a ./.libs/libvolk_avx_32.a ./.libs/libvolk_sse2_only.a ./.libs/libvolk_sse4_1_64.a ./.libs/libvolk_sse3_32.a ./.libs/libvolk_ssse3_64.a -Wl,--no-whole-archive -lorc-0.4 -O2 -Wl,-soname -Wl,libvolk.so.0 -o .libs/libvolk.so.0.0.0 /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: i386 architecture of input file ./.libs/libvolk_ssse3_32.a(libvolk_ssse3_32_la-volk_machine_ssse3_32.o)’
is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/…/…/…/…/x86_64-pc-linux-gnu/bin/ld:
i386 architecture of input file
./.libs/libvolk_sse2_32.a(libvolk_sse2_32_la-volk_machine_sse2_32.o)' is incompatible with i386:x86-64 output /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: i386 architecture of input file ./.libs/libvolk_sse4_1_32.a(libvolk_sse4_1_32_la-volk_machine_sse4_1_32.o)’
is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/…/…/…/…/x86_64-pc-linux-gnu/bin/ld:
i386 architecture of input file
./.libs/libvolk_sse4_a_32.a(libvolk_sse4_a_32_la-volk_machine_sse4_a_32.o)' is incompatible with i386:x86-64 output /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: i386 architecture of input file ./.libs/libvolk_sse4_2_32.a(libvolk_sse4_2_32_la-volk_machine_sse4_2_32.o)’
is incompatible with i386:x86-64 output
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/…/…/…/…/x86_64-pc-linux-gnu/bin/ld:
i386 architecture of input file
./.libs/libvolk_avx_32.a(libvolk_avx_32_la-volk_machine_avx_32.o)' is incompatible with i386:x86-64 output /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: i386 architecture of input file ./.libs/libvolk_sse3_32.a(libvolk_sse3_32_la-volk_machine_sse3_32.o)’
is incompatible with i386:x86-64 output
./.libs/libvolk_ssse3_32.a(libvolk_ssse3_32_la-volk_machine_ssse3_32.o):
In function volk_32f_s32f_stddev_32f_a_generic': /scratch/jiri/gnuradio/volk/lib/../include/volk/volk_32f_s32f_stddev_32f_a.h:136: undefined reference to sqrtf’
./.libs/libvolk_ssse3_32.a(libvolk_ssse3_32_la-volk_machine_ssse3_32.o):
In function volk_16ic_magnitude_16i_a_generic': /scratch/jiri/gnuradio/volk/lib/../include/volk/volk_16ic_magnitude_16i_a.h:172: undefined reference to sqrtf’ and many undefined references to
atan2f,powf,sincosf, etc. gfollow. I have gcc (Gentoo 4.5.3-r1 p1.0,
pie-0.4.5) 4.5.3 on X86_64 Intel(R) Core™ i7 system. Thanks for
advices, Jiri Pittner On Fri, 3 Feb 2012, Jiri Pittner wrote:

This I did more than 10 times recently, testing also with 3.4.2,
carefully deinstalling previously installed versions. It’s reasonably
fast on 4-core machine and as Gentoo user I am used to run some
compilations :-). As I wrote I got compilation errors with newer boost
versions, I will retry that and report them, since the backtrace shows
problem is in boost, so when I am able to compile gnuradio with newer
boost it might help. Jiri On Thu, 2 Feb 2012, Marcus D. Leech wrote:

On 02/02/2012 05:54 PM, Nick F. wrote:

Try
recompiling gr-uhd and reinstalling.

–n
Might as
well re-do the entire Gnu Radio build. It doesn’t take that long. –
Marcus L. Principal Investigator Shirleys Bay Radio Astronomy
Consortium http://www.sbrac.org [1]

_______________________________________________ Discuss-gnuradio mailing
list [email protected] [2]
Discuss-gnuradio Info Page [3]

_______________________________________________ Discuss-gnuradio mailing
list [email protected] [4]
Discuss-gnuradio Info Page [5]

_______________________________________________ Discuss-gnuradio mailing
list [email protected] [6]
Discuss-gnuradio Info Page [7]

Links:

[1] http://www.sbrac.org
[2]
mailto:[email protected]
[3]
Discuss-gnuradio Info Page
[4]
mailto:[email protected]
[5]
Discuss-gnuradio Info Page
[6]
mailto:[email protected]
[7]
Discuss-gnuradio Info Page

Hi Volker,

thanks for the hints. I have presently 3 versions of boost:
Installed versions: 1.42.0(1.42)(19:46:44 5.3.2011)(python
-examples) 1.46.1(1.46)(23:21:11 11.5.2011)(python -examples)
1.47.0(1.47)(14:25:38 1.11.2011)(python -examples)
and I am using eselect to switch between. I can try to emerge --sync and
install boost-1.47.0-r1 (not a typo from 1.48.0-r1?).
I have automake 1.11.1 and autoconf 2.68. No problems with make install
encountered.

Best regards,
Jiri

Hi Ben,

thanks for the hint - with cmake, I compiled it without any problem,
including volk, using the boost-1.47.0 version. I do not have USRP
at hand over the weekend, so I remain curious whether the runtime crash
disappears, too.

However, there is a problem: I want to use also the funcube-dongle, and
when trying to compile gr-fcd, I get errors, since cmake does not employ
libtool and the .la files are missing. gr-fcd does not support cmake so
far.
My goal was to have one version of gnuradio installed, which will run
both
with USRP and FCD, but it seems not possible at the moment…
I am not familiar with cmake, but maybe it is not so difficult to create
files necessary for compilation of gr-fcd with cmake. If the cmake-built
gnuradio does not crash with USRP, I will probably try it.

Thanks,
Jiri

Jiri -

Just to echo Marcus, have you tried building with CMake? Many people
find
that the CMake build magically fixes bizarre build errors; it certainly
does in my case!

Cheers,
Ben

On 02/03/2012 01:20 PM, Jiri Pittner wrote:

far.
The .la files are not needed to build against a library.

My goal was to have one version of gnuradio installed, which will run both
with USRP and FCD, but it seems not possible at the moment…

This should not be an issue. Libraries are libraries, doesn’t matter the
build system.

On 02/03/2012 01:34 PM, Jiri Pittner wrote:

thanks for the hint - with cmake, I compiled it without any problem,

/bin/sed: can’t read /usr/local/lib64/libgruel.la: No such file or
directory
libtool: link: `/usr/local/lib64/libgruel.la’ is not a valid libtool
archive
make[3]: *** [libgnuradio-fcd.la] Error 1

Perhaps the build has cached the idea that it should look for .la files.
Try completely cleaning before ./bootstrap and configure.

If its really looking for la files always, then thats a problem: one
couldnt, lets say, build fcd for a package based install of gnuradio.
But i dont think this was a problem for marcus.

-josh

Unfortunately, it is not cached, but seems to be inherent feature of
autotools:
rm -rf gr-fcd
git clone GitHub - csete/gr-fcd: This repository is obsolete since gr-fcd is now included in GNU Radio.
cd gr-fcd
./bootstrap
./configure
make

/bin/grep: /usr/local/lib64/libgruel.la: No such file or directory
…the same error

Jiri

Hi Josh,

On Fri, 3 Feb 2012, Josh B. wrote:

However, there is a problem: I want to use also the funcube-dongle, and
when trying to compile gr-fcd, I get errors, since cmake does not employ
libtool and the .la files are missing. gr-fcd does not support cmake so
far.

The .la files are not needed to build against a library.

In principle yes, but then I could not use ./configure, which uses
libtool,
which needs them:
/bin/sh …/libtool --tag=CXX --mode=link g++ -g -O2 -g -O2
-version-info 0:0:0 -release 1.3git -o libgnuradio-fcd.la -rpath
/usr/local/lib64 fcd_source_c.lo fcd.lo hid-libusb.lo
-L/usr/local/lib
-L/usr/lib64/blas/atlas -lgnuradio-core -lgruel -lfftw3f -lgsl -lcblas
-latlas -lm -L/usr/local/lib -L/usr/lib64/blas/atlas -lgnuradio-audio
-lgnuradio-core -lgruel -lfftw3f -lgsl -lcblas -latlas -lm -lusb-1.0
/bin/grep: /usr/local/lib64/libgruel.la: No such file or directory
/bin/sed: can’t read /usr/local/lib64/libgruel.la: No such file or
directory
libtool: link: `/usr/local/lib64/libgruel.la’ is not a valid libtool
archive
make[3]: *** [libgnuradio-fcd.la] Error 1

On 02/05/2012 04:43 PM, Jiri Pittner wrote:

Hi Ben,
good news - the cmake-built gnuradio does not crash. However, I am not
completely happy yet: when I try some WFM receive example, it always
reports “frequency out of range”. I have WBX in side A and DBSRX in
side B of USRP1. uhd_usrp_probe recognizes this well:

You’re confusing “–spec” and “-a”:

Usage: usrp_wfm_rcv.py [options]

Options:
-h, --help show this help message and exit
-a ARGS, --args=ARGS UHD device address args [default=]
–spec=SPEC Subdevice of UHD device where appropriate
-A ANTENNA, --antenna=ANTENNA
select Rx Antenna where appropriate
-f FREQ, --freq=FREQ set frequency to FREQ
-g GAIN, --gain=GAIN set gain in dB (default is midpoint)
-V VOLUME, --volume=VOLUME
set volume (default is midpoint)
-O AUDIO_OUTPUT, --audio-output=AUDIO_OUTPUT
pcm device name. E.g., hw:0,0 or surround51 or
/dev/dsp
–freq-min=FREQ_MIN Set a minimum frequency [default=87900000.0]
–freq-max=FREQ_MAX Set a maximum frequency [default=108100000.0]

Try:

usrp_wfm_rcv.py -a “type=usrp1” -spec “A:0” -A RX2 --freq 92.5e6

Which will use the daughtercard in slot “A” with antenna “RX2” on a
“type=usrp1” device.


Marcus L.
Principal Investigator
Shirleys Bay Radio Astronomy Consortium

Sorry for trivial question - it’s my first time with UHD. It works now,
thanks.
Jiri

Hi Ben,
good news - the cmake-built gnuradio does not crash. However, I am not
completely happy yet: when I try some WFM receive example, it always
reports “frequency out of range”. I have WBX in side A and DBSRX in side
B
of USRP1. uhd_usrp_probe recognizes this well:

| | | /
| | | | RX Subdev: 0
| | | | Name: WBX RX v2 + Simple GDB
| | | | Antennas: TX/RX, RX2, CAL
| | | | Sensors: lo_locked
| | | | Freq range: 68.750 to 2200.000 Mhz
| | | | Gain range PGA0: 0.0 to 31.5 step 0.5 dB
| | | | Connection Type: IQ
| | | | Uses LO offset: No

But even using option -a A:0 for
gnuradio/gr-uhd/examples/usrp_wfm_rcv.py
does not help, it always obviously tries to access DBSRX, which is
inappropriate for this freq. Any idea what could be wrong?

Best regards,
Jiri