Build problem (from SVN)

Hi,

I don’t seem able to build GnuRadio. I hecked out a copy from SVN
today and after ./bootstrap, ./configure and then make it fails with:

/bin/sh …/…/…/libtool --tag=CXX --mode=link g++ -g -O2 -Wall
-Woverloaded-virtual -pthread -o libmblock-qa.la -rpath /usr/local/lib
-avoid-version qa_bitset.lo qa_bitset_mbh.lo qa_disconnect.lo
qa_mblock.lo qa_mblock_prims.lo qa_mblock_send.lo qa_mblock_sys.lo
qa_timeouts.lo libmblock.la -lcppunit -ldl -lstdc++
g++ -shared -nostdlib
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/…/…/…/…/lib/crti.o
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/crtbeginS.o .libs/qa_bitset.o
.libs/qa_bitset_mbh.o .libs/qa_disconnect.o .libs/qa_mblock.o
.libs/qa_mblock_prims.o .libs/qa_mblock_send.o .libs/qa_mblock_sys.o
.libs/qa_timeouts.o -Wl,–rpath
-Wl,/home/matt/gnuradio/mblock/src/lib/.libs -Wl,–rpath
-Wl,/usr/local/lib ./.libs/libmblock.so /usr/lib/libcppunit.so -ldl
-L/usr/lib/gcc/x86_64-linux-gnu/4.1.3
-L/usr/lib/gcc/x86_64-linux-gnu/4.1.3/…/…/…/…/lib -L/lib/…/lib
-L/usr/lib/…/lib -lstdc++ -lm -lc -lgcc_s
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/crtendS.o
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/…/…/…/…/lib/crtn.o -pthread
-Wl,-soname -Wl,libmblock-qa.so -o .libs/libmblock-qa.so
creating libmblock-qa.la
(cd .libs && rm -f libmblock-qa.la && ln -s …/libmblock-qa.la
libmblock-qa.la)
if g++ -DHAVE_CONFIG_H -I. -I. -I…/…/… -DOMNITHREAD_POSIX=1
-I…/…/…/omnithread -I…/…/…/pmt/src/lib -g -O2 -Wall
-Woverloaded-virtual -pthread -MT test_mblock.o -MD -MP -MF
“.deps/test_mblock.Tpo” -c -o test_mblock.o test_mblock.cc;
then mv -f “.deps/test_mblock.Tpo” “.deps/test_mblock.Po”; else
rm -f “.deps/test_mblock.Tpo”; exit 1; fi
/bin/sh …/…/…/libtool --tag=CXX --mode=link g++ -g -O2 -Wall
-Woverloaded-virtual -pthread -o test_mblock test_mblock.o
libmblock-qa.la
g++ -g -O2 -Wall -Woverloaded-virtual -pthread -o .libs/test_mblock
test_mblock.o ./.libs/libmblock-qa.so -Wl,–rpath -Wl,/usr/local/lib
/home/matt/gnuradio/mblock/src/lib/.libs/libmblock.so: undefined
reference to pmt_deserialize(std::basic_streambuf<char, std::char_traits<char> >&)' ./.libs/libmblock-qa.so: undefined reference toPMT_F’
/home/matt/gnuradio/mblock/src/lib/.libs/libmblock.so: undefined
reference to pmt_is_eof_object(boost::shared_ptr<pmt_base>)' /home/matt/gnuradio/mblock/src/lib/.libs/libmblock.so: undefined reference topmt_make_any(boost::any const&)’
/home/matt/gnuradio/mblock/src/lib/.libs/libmblock.so: undefined
reference to pmt_any_ref(boost::shared_ptr<pmt_base>)' ./.libs/libmblock-qa.so: undefined reference toPMT_T’
collect2: ld returned 1 exit status
make[5]: *** [test_mblock] Error 1
make[5]: Leaving directory /home/matt/gnuradio/mblock/src/lib' make[4]: *** [all] Error 2 make[4]: Leaving directory/home/matt/gnuradio/mblock/src/lib’
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory /home/matt/gnuradio/mblock/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory/home/matt/gnuradio/mblock’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/matt/gnuradio’
make: *** [all] Error 2

I’m running debian unstable on AMD64. I’m sure I had this problem
before, and it was due to the build process using old incs & libs from
a old version I had laying around in /usr/local - but I’ve cleaned
/usr/local out of all old GNUradio files and it still bombs out.

I’m using version 1.34.0 of boost.

I haven’t opened a new ticket just in case its just a problem with me!

Thanks,

Matt

On Mon, May 28, 2007 at 10:15:35AM +0100, [email protected]
wrote:

if g++ -DHAVE_CONFIG_H -I. -I. -I…/…/… -DOMNITHREAD_POSIX=1 -I…/…/…/omnithread -I…/…/…/pmt/src/lib -g -O2 -Wall -Woverloaded-virtual -pthread -MT test_mblock.o -MD -MP -MF “.deps/test_mblock.Tpo” -c -o test_mblock.o test_mblock.cc;
make[5]: *** [test_mblock] Error 1

Thanks,

Matt

Matt, this is most likely the famous Debian/Ubuntu libtool “feature”.

See http://gnuradio.org/trac/wiki/UbuntuInstall, especially the
section labeled “Linking Errors”.

Eric

Eric B. writes:

On Mon, May 28, 2007 at 10:15:35AM +0100, [email protected]
wrote:

Hi,

I don’t seem able to build GnuRadio. I hecked out a copy from SVN
today and after ./bootstrap, ./configure and then make it fails
with:

/bin/sh …/…/…/libtool --tag=CXX --mode=link g++ -g -O2 -Wall
-Woverloaded-virtual -pthread -o libmblock-qa.la -rpath /usr/local/lib
-avoid-version qa_bitset.lo qa_bitset_mbh.lo qa_disconnect.lo
qa_mblock.lo qa_mblock_prims.lo qa_mblock_send.lo qa_mblock_sys.lo
qa_timeouts.lo libmblock.la -lcppunit -ldl -lstdc++
g++ -shared -nostdlib
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/…/…/…/…/lib/crti.o
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/crtbeginS.o .libs/qa_bitset.o
.libs/qa_bitset_mbh.o .libs/qa_disconnect.o .libs/qa_mblock.o
.libs/qa_mblock_prims.o .libs/qa_mblock_send.o .libs/qa_mblock_sys.o
.libs/qa_timeouts.o -Wl,–rpath
-Wl,/home/matt/gnuradio/mblock/src/lib/.libs -Wl,–rpath
-Wl,/usr/local/lib ./.libs/libmblock.so /usr/lib/libcppunit.so -ldl
-L/usr/lib/gcc/x86_64-linux-gnu/4.1.3
-L/usr/lib/gcc/x86_64-linux-gnu/4.1.3/…/…/…/…/lib -L/lib/…/lib
-L/usr/lib/…/lib -lstdc++ -lm -lc -lgcc_s
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/crtendS.o
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/…/…/…/…/lib/crtn.o -pthread
-Wl,-soname -Wl,libmblock-qa.so -o .libs/libmblock-qa.so
creating libmblock-qa.la
(cd .libs && rm -f libmblock-qa.la && ln -s …/libmblock-qa.la
libmblock-qa.la)
if g++ -DHAVE_CONFIG_H -I. -I. -I…/…/… -DOMNITHREAD_POSIX=1
-I…/…/…/omnithread -I…/…/…/pmt/src/lib -g -O2 -Wall
-Woverloaded-virtual -pthread -MT test_mblock.o -MD -MP -MF
“.deps/test_mblock.Tpo” -c -o test_mblock.o test_mblock.cc;
then mv -f “.deps/test_mblock.Tpo” “.deps/test_mblock.Po”;
else rm -f “.deps/test_mblock.Tpo”; exit 1; fi
/bin/sh …/…/…/libtool --tag=CXX --mode=link g++ -g -O2 -Wall
-Woverloaded-virtual -pthread -o test_mblock test_mblock.o
libmblock-qa.la
g++ -g -O2 -Wall -Woverloaded-virtual -pthread -o .libs/test_mblock
test_mblock.o ./.libs/libmblock-qa.so -Wl,–rpath -Wl,/usr/local/lib
/home/matt/gnuradio/mblock/src/lib/.libs/libmblock.so: undefined
reference to pmt_deserialize(std::basic_streambuf<char, std::char_traits<char> >&)' ./.libs/libmblock-qa.so: undefined reference to PMT_F’
/home/matt/gnuradio/mblock/src/lib/.libs/libmblock.so: undefined
reference to pmt_is_eof_object(boost::shared_ptr<pmt_base>)' /home/matt/gnuradio/mblock/src/lib/.libs/libmblock.so: undefined reference to pmt_make_any(boost::any const&)’
/home/matt/gnuradio/mblock/src/lib/.libs/libmblock.so: undefined
reference to pmt_any_ref(boost::shared_ptr<pmt_base>)' ./.libs/libmblock-qa.so: undefined reference to PMT_T’
collect2: ld returned 1 exit status
make[5]: *** [test_mblock] Error 1
make[5]: Leaving directory /home/matt/gnuradio/mblock/src/lib' make[4]: *** [all] Error 2 make[4]: Leaving directory /home/matt/gnuradio/mblock/src/lib’
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory /home/matt/gnuradio/mblock/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory /home/matt/gnuradio/mblock’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/matt/gnuradio’
make: *** [all] Error 2

I’m running debian unstable on AMD64. I’m sure I had this problem
before, and it was due to the build process using old incs & libs
from
a old version I had laying around in /usr/local - but I’ve cleaned
/usr/local out of all old GNUradio files and it still bombs out.

I’m using version 1.34.0 of boost.

I haven’t opened a new ticket just in case its just a problem with
me!

Thanks,

Matt

Matt, this is most likely the famous Debian/Ubuntu libtool “feature”.

See http://gnuradio.org/trac/wiki/UbuntuInstall, especially the
section labeled “Linking Errors”.

Eric

Eric,

Thanks for that.

I added /usr/local/lib to my ld.so.conf and did a ldconfig. Then did
make clean and then make. Unfortunately the compilation bombed out
again with the same error.

I’ll check out a fresh copy and reconfigure it again and see if that
helps.

Thanks,

Matt

On Mon, May 28, 2007 at 06:52:23PM +0100, [email protected]
wrote:

g++ -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/4.1.3/…/…/…/…/lib/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.1.3/crtbeginS.o .libs/qa_bitset.o .libs/qa_bitset_mbh.o .libs/qa_disconnect.o .libs/qa_mblock.o .libs/qa_mblock_prims.o .libs/qa_mblock_send.o .libs/qa_mblock_sys.o .libs/qa_timeouts.o -Wl,–rpath -Wl,/home/matt/gnuradio/mblock/src/lib/.libs -Wl,–rpath -Wl,/usr/local/lib ./.libs/libmblock.so /usr/lib/libcppunit.so -ldl -L/usr/lib/gcc/x86_64-linux-gnu/4.1.3 -L/usr/lib/gcc/x86_64-linux-gnu/4.1.3/…/…/…/…/lib -L/lib/…/lib -L/usr/lib/…/lib -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.1.3/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/4.1.3/…/…/…/…/lib/crtn.o -pthread -Wl,-soname -Wl,libmblock-qa.so -o .libs/libmblock-qa.so
/home/matt/gnuradio/mblock/src/lib/.libs/libmblock.so: undefined reference to `pmt_any_ref(boost::shared_ptr<pmt_base>)’
make[1]: *** [all-recursive] Error 1

Matt
Try adding /usr/local/lib64 to ld.so.conf in addition to
/usr/local/lib, then run ldconfig.

Eric

[email protected] writes:

Eric B. writes:

On Mon, May 28, 2007 at 10:15:35AM +0100,
[email protected] wrote:

Hi,

I don’t seem able to build GnuRadio. I hecked out a copy from
SVN
today and after ./bootstrap, ./configure and then make it fails
with:

/bin/sh …/…/…/libtool --tag=CXX --mode=link g++ -g -O2 -Wall
-Woverloaded-virtual -pthread -o libmblock-qa.la -rpath /usr/local/lib
-avoid-version qa_bitset.lo qa_bitset_mbh.lo qa_disconnect.lo
qa_mblock.lo qa_mblock_prims.lo qa_mblock_send.lo qa_mblock_sys.lo
qa_timeouts.lo libmblock.la -lcppunit -ldl -lstdc++
g++ -shared -nostdlib
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/…/…/…/…/lib/crti.o
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/crtbeginS.o .libs/qa_bitset.o
.libs/qa_bitset_mbh.o .libs/qa_disconnect.o .libs/qa_mblock.o
.libs/qa_mblock_prims.o .libs/qa_mblock_send.o .libs/qa_mblock_sys.o
.libs/qa_timeouts.o -Wl,–rpath
-Wl,/home/matt/gnuradio/mblock/src/lib/.libs -Wl,–rpath
-Wl,/usr/local/lib ./.libs/libmblock.so /usr/lib/libcppunit.so -ldl
-L/usr/lib/gcc/x86_64-linux-gnu/4.1.3
-L/usr/lib/gcc/x86_64-linux-gnu/4.1.3/…/…/…/…/lib -L/lib/…/lib
-L/usr/lib/…/lib -lstdc++ -lm -lc -lgcc_s
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/crtendS.o
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/…/…/…/…/lib/crtn.o -pthread
-Wl,-soname -Wl,libmblock-qa.so -o .libs/libmblock-qa.so
creating libmblock-qa.la
(cd .libs && rm -f libmblock-qa.la && ln -s …/libmblock-qa.la
libmblock-qa.la)
if g++ -DHAVE_CONFIG_H -I. -I. -I…/…/… -DOMNITHREAD_POSIX=1
-I…/…/…/omnithread -I…/…/…/pmt/src/lib -g -O2 -Wall
-Woverloaded-virtual -pthread -MT test_mblock.o -MD -MP -MF
“.deps/test_mblock.Tpo” -c -o test_mblock.o test_mblock.cc;
then mv -f “.deps/test_mblock.Tpo”
“.deps/test_mblock.Po”; else rm -f “.deps/test_mblock.Tpo”; exit 1; fi
/bin/sh …/…/…/libtool --tag=CXX --mode=link g++ -g -O2 -Wall
-Woverloaded-virtual -pthread -o test_mblock test_mblock.o
libmblock-qa.la
g++ -g -O2 -Wall -Woverloaded-virtual -pthread -o
.libs/test_mblock test_mblock.o ./.libs/libmblock-qa.so -Wl,–rpath
-Wl,/usr/local/lib
/home/matt/gnuradio/mblock/src/lib/.libs/libmblock.so: undefined
reference to pmt_deserialize(std::basic_streambuf<char, std::char_traits<char> >&)' ./.libs/libmblock-qa.so: undefined reference to PMT_F’
/home/matt/gnuradio/mblock/src/lib/.libs/libmblock.so: undefined
reference to pmt_is_eof_object(boost::shared_ptr<pmt_base>)' /home/matt/gnuradio/mblock/src/lib/.libs/libmblock.so: undefined reference to pmt_make_any(boost::any const&)’
/home/matt/gnuradio/mblock/src/lib/.libs/libmblock.so: undefined
reference to pmt_any_ref(boost::shared_ptr<pmt_base>)' ./.libs/libmblock-qa.so: undefined reference to PMT_T’
collect2: ld returned 1 exit status
make[5]: *** [test_mblock] Error 1
make[5]: Leaving directory /home/matt/gnuradio/mblock/src/lib' make[4]: *** [all] Error 2 make[4]: Leaving directory /home/matt/gnuradio/mblock/src/lib’
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory /home/matt/gnuradio/mblock/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory /home/matt/gnuradio/mblock’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/matt/gnuradio’
make: *** [all] Error 2

I’m running debian unstable on AMD64. I’m sure I had this
problem
before, and it was due to the build process using old incs &
libs from
a old version I had laying around in /usr/local - but I’ve
cleaned
/usr/local out of all old GNUradio files and it still bombs out.

I’m using version 1.34.0 of boost.

I haven’t opened a new ticket just in case its just a problem
with me!

Thanks,

Matt

Matt, this is most likely the famous Debian/Ubuntu libtool
“feature”.

See http://gnuradio.org/trac/wiki/UbuntuInstall, especially the
section labeled “Linking Errors”.

Eric

Eric,

Thanks for that.

I added /usr/local/lib to my ld.so.conf and did a ldconfig. Then did
make clean and then make. Unfortunately the compilation bombed out
again with the same error.

I’ll check out a fresh copy and reconfigure it again and see if that
helps.

Thanks,

Matt

Just to confirm that a new checkout and configure did not help.

Any other suggestions?

Thanks,

Matt

Eric B. writes:

On Mon, May 28, 2007 at 06:52:23PM +0100, [email protected]
wrote:

[email protected] writes:

Eric B. writes:

On Mon, May 28, 2007 at 10:15:35AM +0100,
[email protected] wrote:

Hi,

I don’t seem able to build GnuRadio. I hecked out a copy
from SVN

today and after ./bootstrap, ./configure and then make it
fails with:

[SNIP]

make[5]: *** [test_mblock] Error 1
make[5]: Leaving directory
`/home/matt/gnuradio/mblock/src/lib’

make[4]: *** [all] Error 2
make[4]: Leaving directory
`/home/matt/gnuradio/mblock/src/lib’

make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory /home/matt/gnuradio/mblock/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory/home/matt/gnuradio/mblock’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/matt/gnuradio’
make: *** [all] Error 2

I’m running debian unstable on AMD64. I’m sure I had this
problem

before, and it was due to the build process using old incs
& libs from

a old version I had laying around in /usr/local - but I’ve
cleaned

/usr/local out of all old GNUradio files and it still bombs
out.

I’m using version 1.34.0 of boost.

Eric,

Thanks for that.

I added /usr/local/lib to my ld.so.conf and did a ldconfig. Then
did

make clean and then make. Unfortunately the compilation bombed
out

again with the same error.

I’ll check out a fresh copy and reconfigure it again and see if
that

helps.

Thanks,

Matt

Just to confirm that a new checkout and configure did not help.

Any other suggestions?

Thanks,

Matt

Try adding /usr/local/lib64 to ld.so.conf in addition to
/usr/local/lib, then run ldconfig.

Eric

Eric,

OK, I tried that - but I still get the same error message. I don’t
understand why this should work - no libraries have been installed to
/usr/local yet, so why do I need to alter the ldconfig path? (Or is
this a strange ‘feature’ of libtool?)

Thanks again for all your help,

Matt

Eric B. writes:

On Tue, May 29, 2007 at 08:38:16PM +0100, [email protected]
wrote:

Just to confirm that a new checkout and configure did not
help.

Any other suggestions?

Thanks,

Matt

Try adding /usr/local/lib64 to ld.so.conf in addition to
/usr/local/lib, then run ldconfig.

Eric

Eric,

OK, I tried that - but I still get the same error message. I don’t
understand why this should work - no libraries have been installed
to

/usr/local yet, so why do I need to alter the ldconfig path? (Or is
this a strange ‘feature’ of libtool?)

Thanks again for all your help,

Matt

Are you specifying

–prefix

to the configure command?

If so, you’ll need to add /lib and /lib64 to ld.so.conf.
This bogus requirement is a result of a seriously flawed “fix” by the
Debian libtool maintainer ( != the upstream libtool maintainer). The
changes that Debian has made (which Ubuntu uses) break the ability to
test code before installation. The full story is kind of involved,
and has to do with them coding a --rpath into the executables BEFORE
they are installed.

Eric

No, there is no --prefix operator supplied.

Thanks for the explanation, and again for all yor help.

Matt

On Tue, May 29, 2007 at 08:38:16PM +0100, [email protected]
wrote:

/usr/local/lib, then run ldconfig.
Thanks again for all your help,

Matt

Are you specifying

–prefix

to the configure command?

If so, you’ll need to add /lib and /lib64 to ld.so.conf.
This bogus requirement is a result of a seriously flawed “fix” by the
Debian libtool maintainer ( != the upstream libtool maintainer). The
changes that Debian has made (which Ubuntu uses) break the ability to
test code before installation. The full story is kind of involved,
and has to do with them coding a --rpath into the executables BEFORE
they are installed.

Eric