Problems with the current GIT source for Gnu Radio

Investigating the problems reported by users running build-gnuradio on
Ubuntu, I was able to reproduce on Fedora 14 as well!

The ‘configure’ portion has problems:

./configure: line 17496: test: too many arguments
./configure: line 17496: test: too many arguments
./configure: line 17496: test: too many arguments
./configure: line 17496: test: too many arguments
./configure: line 17496: test: too many arguments
./configure: line 17496: test: too many arguments
./configure: line 17496: test: too many arguments
./configure: line 17496: test: too many arguments
./configure: line 17496: test: too many arguments
./configure: line 17496: test: too many arguments
./configure: line 17496: test: too many arguments
./configure: line 17496: test: too many arguments
./configure: line 17496: test: too many arguments
./configure: line 17496: test: too many arguments
./configure: line 17496: test: too many arguments
./configure: line 17502: test: too many arguments
./configure: line 17502: test: too many arguments
./configure: line 17502: test: too many arguments
./configure: line 17502: test: too many arguments
./configure: line 17502: test: too many arguments
./configure: line 17502: test: too many arguments
./configure: line 17502: test: too many arguments
./configure: line 17502: test: too many arguments
./configure: line 17502: test: too many arguments
./configure: line 17502: test: too many arguments
./configure: line 17502: test: too many arguments
./configure: line 17502: test: too many arguments
./configure: line 17502: test: too many arguments
./configure: line 17502: test: too many arguments
./configure: line 17502: test: too many arguments

The make yielded:

mv -f .deps/gr_uhd_amsg_source.Tpo .deps/gr_uhd_amsg_source.Plo
/bin/sh …/…/libtool --tag=CXX --mode=link g++ -g -O2 -Wall
-Woverloaded-virtual -pthread -version-info 0:0:0 -release 3.4.1git -o
libgnuradio-uhd.la -rpath /usr/local/lib64 gr_uhd_usrp_source.lo
gr_uhd_usrp_sink.lo gr_uhd_amsg_source.lo
/home/mleech/gnuradio/gnuradio-core/src/lib/libgnuradio-core.la
-L/usr/local/lib64 -luhd -l/usr/lib64/libboost_date_time-mt.so
-l/usr/lib64/libboost_filesystem-mt.so
-l/usr/lib64/libboost_program_options-mt.so
-l/usr/lib64/libboost_regex-mt.so -l/usr/lib64/libboost_system-mt.so
-l/usr/lib64/libboost_thread-mt.so -loptimized -ldebug
-l/usr/lib64/libboost_unit_test_framework-mt.so -lusb-1.0
libtool: link: g++ -shared -nostdlib
/usr/lib/gcc/x86_64-redhat-linux/4.5.1/…/…/…/…/lib64/crti.o
/usr/lib/gcc/x86_64-redhat-linux/4.5.1/crtbeginS.o
.libs/gr_uhd_usrp_source.o .libs/gr_uhd_usrp_sink.o
.libs/gr_uhd_amsg_source.o -Wl,-rpath
-Wl,/home/mleech/gnuradio/gnuradio-core/src/lib/.libs -Wl,-rpath
-Wl,/home/mleech/gnuradio/gruel/src/lib/.libs
-L/home/mleech/gnuradio/gruel/src/lib/.libs
/home/mleech/gnuradio/gnuradio-core/src/lib/.libs/libgnuradio-core.so
-L/usr/lib64 -L/usr/lib64/atlas -lrt
/home/mleech/gnuradio/gruel/src/lib/.libs/libgruel.so -lboost_system-mt
-lboost_filesystem-mt -lboost_thread-mt -lfftw3f -lgsl -lgslcblas
-lcblas -latlas -L/usr/local/lib64 -luhd
-l/usr/lib64/libboost_date_time-mt.so
-l/usr/lib64/libboost_filesystem-mt.so
-l/usr/lib64/libboost_program_options-mt.so
-l/usr/lib64/libboost_regex-mt.so -l/usr/lib64/libboost_system-mt.so
-l/usr/lib64/libboost_thread-mt.so -loptimized -ldebug
-l/usr/lib64/libboost_unit_test_framework-mt.so -lusb-1.0
-L/usr/lib/gcc/x86_64-redhat-linux/4.5.1
-L/usr/lib/gcc/x86_64-redhat-linux/4.5.1/…/…/…/…/lib64
-L/lib/…/lib64 -L/usr/lib/…/lib64
-L/usr/lib/gcc/x86_64-redhat-linux/4.5.1/…/…/… -lstdc++ -lm -lc
-lgcc_s /usr/lib/gcc/x86_64-redhat-linux/4.5.1/crtendS.o
/usr/lib/gcc/x86_64-redhat-linux/4.5.1/…/…/…/…/lib64/crtn.o
-pthread -pthread -Wl,-soname -Wl,libgnuradio-uhd-3.4.1git.so.0 -o
.libs/libgnuradio-uhd-3.4.1git.so.0.0.0
/usr/bin/ld: cannot find -l/usr/lib64/libboost_date_time-mt.so
/usr/bin/ld: cannot find -l/usr/lib64/libboost_filesystem-mt.so
/usr/bin/ld: cannot find -l/usr/lib64/libboost_program_options-mt.so
/usr/bin/ld: cannot find -l/usr/lib64/libboost_regex-mt.so
/usr/bin/ld: cannot find -l/usr/lib64/libboost_system-mt.so
/usr/bin/ld: cannot find -l/usr/lib64/libboost_thread-mt.so
/usr/bin/ld: cannot find -loptimized
/usr/bin/ld: cannot find -ldebug
/usr/bin/ld: cannot find -l/usr/lib64/libboost_unit_test_framework-mt.so
collect2: ld returned 1 exit status
make[5]: *** [libgnuradio-uhd.la] Error 1
make[5]: Leaving directory /home/mleech/gnuradio/gr-uhd/lib' make[4]: *** [all] Error 2 make[4]: Leaving directory /home/mleech/gnuradio/gr-uhd/lib’
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory /home/mleech/gnuradio/gr-uhd' make[2]: *** [all] Error 2 make[2]: Leaving directory /home/mleech/gnuradio/gr-uhd’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/mleech/gnuradio’
make: *** [all] Error 2

So this problem isn’t restricted to Ubuntu, or build-gnuradio. Since I
can get the same results manually.


Marcus L.
Principal Investigator
Shirleys Bay Radio Astronomy Consortium

On Sat, Sep 3, 2011 at 6:19 PM, Marcus D. Leech [email protected]
wrote:

./configure: line 17496: test: too many arguments
./configure: line 17502: test: too many arguments
./configure: line 17502: test: too many arguments
libgnuradio-uhd.la -rpath /usr/local/lib64 gr_uhd_usrp_source.lo
.libs/gr_uhd_amsg_source.o -Wl,-rpath
-Wl,/home/mleech/gnuradio/**gnuradio-core/src/lib/.libs
-lusb-1.0 -L/usr/lib/gcc/x86_64-redhat-**linux/4.5.1
/usr/bin/ld: cannot find -l/usr/lib64/libboost_system-**mt.so
make[3]: Leaving directory `/home/mleech/gnuradio/gr-uhd’


Marcus L.
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org

Those configure warnings aren’t a problem. They’ve been there for a
while. I
haven’t bothered to correct it since it’s not an actual problem; it’s
just
ugly, and we’ll fix it when we can.

The error you’re getting, however, is strange. I’ve been built
everything
from scratch in maint, master, and next this past week on ubuntu 10.04
and
11.04 and haven’t had a problem.

Anyone else having issues? I’m on a mini vacation this weekend, so no
real
time to look into this closely until Monday.

Tom

On 09/03/2011 08:35 PM, Tom R. wrote:

./configure: line 17496: test: too many arguments
./configure: line 17496: test: too many arguments
./configure: line 17502: test: too many arguments

-l/usr/lib64/libboost_program_options-mt.so
-Wl,/home/mleech/gnuradio/gruel/src/lib/.libs
-l/usr/lib64/libboost_system-mt.so
/usr/bin/ld: cannot find -l/usr/lib64/libboost_date_time-mt.so
make[5]: *** [libgnuradio-uhd.la <http://libgnuradio-uhd.la>] Error 1

Anyone else having issues? I’m on a mini vacation this weekend, so no
real time to look into this closely until Monday.

Tom

Well, I just did a fresh “git clone”, and the usual
bootstrap/configure/make, and it’s still flaking out, on my F14 system.

I’ll note that the error given indicates some kind of weirdness in the
the generated Makefiles, since it’s unusual (and not, as far as I can
tell,
even legal) to specify a full pathname in the -l option to ‘ld’. So
something is probably generating borked Makefiles.

On 09/03/2011 08:35 PM, Tom R. wrote:

Anyone else having issues? I’m on a mini vacation this weekend, so no
real time to look into this closely until Monday.

Tom

Even if I wind a fresh “git clone” back to before 2011-08-20, I still
get the problem. It appears to be limited to gr-uhd.


Marcus L.
Principal Investigator
Shirleys Bay Radio Astronomy Consortium

Guys,

It’s about the same error that Greg and me described in another email.
I’m running Ubuntu 10.04 i386.

Regards,

Ronaldo

/usr/bin/ld: cannot find -l/usr/lib64/libboost_unit_test_framework-mt.so
This looks suspiciously like the contents of Libs.private which I added
to the uhd.pc file in 31cdaa9feb4009885d8b4e90d5fddff3565a9257

Can edit the uhd.pc file and remove the Libs.private and see if that
makes this build issue go away?

-josh

On 09/03/2011 11:39 PM, Josh B. wrote:

/usr/bin/ld: cannot find -l/usr/lib64/libboost_unit_test_framework-mt.so
This looks suspiciously like the contents of Libs.private which I added
to the uhd.pc file in 31cdaa9feb4009885d8b4e90d5fddff3565a9257

Can edit the uhd.pc file and remove the Libs.private and see if that
makes this build issue go away?

-josh

That appears to be exactly the cause! And would explain why
rolling-back my local gnuradio clone to before 2011-08-22 had no
effect, since it was caused by pkg-config (via the
autoconf/automake/configure chain) putting all that extra (and wrong)
goop
into UHD_LIBS.


Marcus L.
Principal Investigator
Shirleys Bay Radio Astronomy Consortium

That appears to be exactly the cause! And would explain why
rolling-back my local gnuradio clone to before 2011-08-22 had no
effect, since it was caused by pkg-config (via the
autoconf/automake/configure chain) putting all that extra (and wrong) goop
into UHD_LIBS.

  1. It looks like autotools is sucking Libs.private and Requires.private
    to determine the flags. Is that the correct behavior?

I suppose that its up the build system, but on your platform (most linux
i assume), explicit linking of nested dependencies isnt needed. So that
why I think the pc files *.private stuff should be left out in this
case.

http://people.freedesktop.org/~dbn/pkg-config-guide.html#concepts

  1. The contents of Boost_LIBRARIES was being dumped into the pc file,
    but thats not actually correct w/o some “sanitizing”. For now, I have
    removed that part and pushed the change to uhd master.

The build script should be fine again w/ regards to uhd.

-Josh

On 04/09/11 12:21 AM, Josh B. wrote:

I suppose that its up the build system, but on your platform (most linux
i assume), explicit linking of nested dependencies isnt needed. So that
why I think the pc files *.private stuff should be left out in this case.

Guide to pkg-config

It looks like the autotools emit the --static option on pkg-config
–libs, which
will always include the Libs.private stuff from the .pc file, it
seems.


Principal Investigator
Shirleys Bay Radio Astronomy Consortium

On Sun, Sep 4, 2011 at 12:37 AM, Marcus D. Leech [email protected]
wrote:

  1. It looks like autotools is sucking Libs.private and Requires.private
    will always include the Libs.private stuff from the .pc file, it seems.
    Glad that’s been cleared up for now. With the conference coming up and
    everything else I need to do, this is going to have to go onto the stack
    for
    now. Might wait until we see about the cmake switch-over, too, before
    revisting these issues and working them out.

Tom