Update:
Line 79 in m4/ax_boost_signals.m4, the macro that checks for
Boost::Signals, does the following:
for libextension in `ls $BOOSTLIBDIR/libboost_signals*.{so,a}*
2>/dev/null | sed 's,.*/,,' | sed -e
's;^lib\(boost_signals.*\)\.so.*$;\1;' -e
's;^lib\(boost_signals.*\)\.a*$;\1;'` ; do
and doing this on my system:
ls /usr/lib64/libboost_signals*.{so,a}* 2>/dev/null | sed 's,.*/,,' |
sed -e 's;^lib\(boost_signals.*\)\.so.*$;\1;' -e
's;^lib\(boost_signals.*\)\.a*$;\1;'
yields this:
boost_signals-mt-s
boost_signals-mt
boost_signals-s
boost_signals
So what happens next is that libboost_signals-mt-s.a is found
acceptable, and the -lboost_signals-mt-s flag is used. Changing that
line to look only for .so archives makes it find
libboost_signals-mt.so instead, which sets the -lboost_signals-mt
flag, and libtpproto-cpp compiles.
Again, I'm not superbly familiar with autotools, so I'm not sure how
to proceed here. If this is Gentoo-specific I can add a patch to the
ebuild.
Thanks.
On Sun, Jun 22, 2008 at 12:05 PM, Aaron Mavrinac <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I had already discussed this briefly on IRC. When compiling
> libtpproto-cpp on my Gentoo/amd64 system, I get the following build
> error:
>
> /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/../../../../x86_64-pc-linux-gnu/bin/ld:
> /usr/lib64/libboost_signals-mt-s.a(trackable.o): relocation
> R_X86_64_32S against
> `boost::signals::trackable::signal_disconnected(void*, void*)' can not
> be used when making a shared object; recompile with -fPIC
> /usr/lib64/libboost_signals-mt-s.a: could not read symbols: Bad value
>
> The problem here seems to be that, for whatever reason, it is trying
> to compile against the static version of Boost::Signals (as one might
> expect, building libtpproto-cpp static works). The following is found
> in configure output:
>
> checking for boostlib >= 1.31.1... yes
> checking whether the Boost::Signals library is available... yes
> checking for exit in -lboost_signals-mt-s... yes
>
> Notice the -lboost_signals-mt-s, which, based on the following list of
> files, indicates that it is trying to use a static library even though
> there is a dynamic version:
>
> /usr/lib64/libboost_signals-mt-s.a
> /usr/lib64/libboost_signals-mt.so
> /usr/lib64/libboost_signals-s.a
> /usr/lib64/libboost_signals.so
>
> The full build log is here:
>
> http://glorfindel.mavrinac.com/~aaron/libtpproto-cpp-builderror
>
> This could be a Gentoo problem or a problem with my particular
> configuration, but I'm kind of at a loss as I'm no autotools or
> linking guru. Any thoughts?
>
> --
> Aaron Mavrinac
> www.mavrinac.com
>
> PGP Public Key: http://www.mavrinac.com/pgp.asc
>
--
Aaron Mavrinac
www.mavrinac.com
PGP Public Key: http://www.mavrinac.com/pgp.asc
_______________________________________________
tp-devel mailing list
[email protected]
http://www.thousandparsec.net/tp/mailman.php/listinfo/tp-devel