Build problem (from SVN)


#1

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


#2

On Mon, May 28, 2007 at 10:15:35AM +0100, removed_email_address@domain.invalid
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


#3

Eric B. writes:

On Mon, May 28, 2007 at 10:15:35AM +0100, removed_email_address@domain.invalid
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 >&)’

./.libs/libmblock-qa.so: undefined reference to PMT_F' /home/matt/gnuradio/mblock/src/lib/.libs/libmblock.so: undefined reference topmt_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


#4

On Mon, May 28, 2007 at 06:52:23PM +0100, removed_email_address@domain.invalid
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


#5

removed_email_address@domain.invalid writes:

Eric B. writes:

On Mon, May 28, 2007 at 10:15:35AM +0100,
removed_email_address@domain.invalid 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 >&)’

./.libs/libmblock-qa.so: undefined reference to PMT_F' /home/matt/gnuradio/mblock/src/lib/.libs/libmblock.so: undefined reference topmt_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


#6

Eric B. writes:

On Mon, May 28, 2007 at 06:52:23PM +0100, removed_email_address@domain.invalid
wrote:

removed_email_address@domain.invalid writes:

Eric B. writes:

On Mon, May 28, 2007 at 10:15:35AM +0100,
removed_email_address@domain.invalid 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


#7

Eric B. writes:

On Tue, May 29, 2007 at 08:38:16PM +0100, removed_email_address@domain.invalid
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


#8

On Tue, May 29, 2007 at 08:38:16PM +0100, removed_email_address@domain.invalid
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