[pkg-boost-devel] Bug#444359: also breaks other packages
brian m. carlson
sandals at crustytoothpaste.ath.cx
Tue Dec 11 21:16:12 UTC 2007
On Mon, Dec 10, 2007 at 07:34:27PM -0700, Martin Michlmayr wrote:
>boost also breaks other packages. Brian, do you think you could take
>a look? (Although I suspect this might have been fixed upstream
>already as SUSE probably ran into it as well.)
Absolutely. There are several unrelated problems here, and I'll go
through them all.
>> gcc -pthread -fno-strict-aliasing -DNDEBUG -Wall -O3 -fPIC -I/usr/include/taglib -I/usr/include/python2.4 -c src/wrapper/basics.cpp -o build/temp.linux-x86_64-2.4/src/wrapper/basics.o
Generally, it's a bad idea to compile C++ code with gcc; this probably
means that linking is also done with gcc (instead of g++) which can lead
to subtle brokenness.
>> In file included from /usr/include/boost/python/class.hpp:29,
>> from /usr/include/boost/python.hpp:18,
>> from src/wrapper/common.hpp:1,
>> from src/wrapper/basics.cpp:11:
>> /usr/include/boost/python/detail/def_helper.hpp:192: error: declaration of 'typename boost::python::detail::keyword_extract<boost::tuples::tuple<const T1&, const T2&, const T3&, const T4&, boost::python::default_call_policies, boost::python::detail::keywords<0ul>, const char*, void (boost::python::detail::not_specified::*)(), boost::tuples::null_type, boost::tuples::null_type> >::result_type boost::python::detail::def_helper<T1, T2, T3, T4>::keywords() const'
>> /usr/include/boost/python/args_fwd.hpp:35: error: changes meaning of 'keywords' from 'struct boost::python::detail::keywords<0ul>'
Within a scope, each name can have only one meaning. The latter header
declares a function named keywords, but before that point the name
refers to struct boost::python::detail::keywords<0ul>, but after it
refers to the function. Hence, before that point, invoking keywords()
would create a new instance of an object, whereas afterward, it would
invoke the function. Changing the meaning of the name like that is not
This looks like a difficult problem, but the general solution is to
either rename the function or move the declaration of the function to
someplace where the other name isn't in scope. The latter doesn't seem
possible here, so the former looks like the only option. I'd suggest
talking to upstream and seeing what they're doing about this.
>> /usr/include/boost/type_traits/is_convertible.hpp:128: error: static data member 'boost::detail::is_convertible_basic_impl<<unnamed>::TagWrap*&, <unnamed>::TagWrap*>::_m_from' used, but not defined
static data members must be explicitly defined, not just declared. In
this case, _m_from is declared, but no explicit initialization has
occurred. The solution is to actually define the static data member.
The remainder of the errors are just instances of this last one.
brian m. carlson / brian with sandals: Houston, Texas, US
+1 713 440 7475 | http://crustytoothpaste.ath.cx/~bmc | My opinion only
a typesetting engine: http://crustytoothpaste.ath.cx/~bmc/code/thwack
OpenPGP: RSA v4 4096b 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 827 bytes
Desc: Digital signature
Url : http://lists.alioth.debian.org/pipermail/pkg-boost-devel/attachments/20071211/20174151/attachment.pgp
More information about the pkg-boost-devel