After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 615479 - build failure (boost related)
build failure (boost related)
Status: RESOLVED FIXED
Product: glom
Classification: Other
Component: build
git master
Other Linux
: Normal critical
: ---
Assigned To: Murray Cumming
Murray Cumming
Depends on:
Blocks:
 
 
Reported: 2010-04-11 20:57 UTC by André Klapper
Modified: 2010-04-12 16:53 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
config.status (79.15 KB, text/plain)
2010-04-12 08:52 UTC, André Klapper
Details
config.log (52.39 KB, text/plain)
2010-04-12 12:01 UTC, André Klapper
Details

Description André Klapper 2010-04-11 20:57:09 UTC
Trying to jhbuild glom git master.

$:andre\> rpm -q boost
boost-1.39.0-9.fc12.i686


glom/python_embed/glom_python.o: In function `registry_lookup2<const volatile Glom::PyGlomUI>':
/usr/include/boost/python/converter/registered.hpp:87: undefined reference to `boost::python::converter::registry::lookup(boost::python::type_info)'
glom/python_embed/glom_python.o: In function `registry_lookup2<const volatile char>':
/usr/include/boost/python/converter/registered.hpp:87: undefined reference to `boost::python::converter::registry::lookup(boost::python::type_info)'
glom/python_embed/glom_python.o: In function `registry_lookup2<const volatile Glom::PyGlomRecord>':
/usr/include/boost/python/converter/registered.hpp:87: undefined reference to `boost::python::converter::registry::lookup(boost::python::type_info)'
glom/python_embed/glom_python.o: In function `str':
/usr/include/boost/python/str.hpp:148: undefined reference to `boost::python::detail::str_base::str_base(char const*)'
glom/python_embed/glom_python.o: In function `Glom::gda_python_module_is_available()':
/home/andre/svn-gnome/glom/glom/python_embed/glom_python.cc:157: undefined reference to `boost::python::import(boost::python::str)'
glom/python_embed/glom_python.o: In function `str':
/usr/include/boost/python/str.hpp:148: undefined reference to `boost::python::detail::str_base::str_base(char const*)'
glom/python_embed/glom_python.o: In function `Glom::glom_python_module_is_available()':
/home/andre/svn-gnome/glom/glom/python_embed/glom_python.cc:144: undefined reference to `boost::python::import(boost::python::str)'
glom/python_embed/glom_python.o: In function `str':
/usr/include/boost/python/str.hpp:148: undefined reference to `boost::python::detail::str_base::str_base(char const*)'
/usr/include/boost/python/str.hpp:148: undefined reference to `boost::python::detail::str_base::str_base(char const*)'
glom/python_embed/glom_python.o: In function `Glom::glom_python_call(Glom::Field::glom_field_type, Glom::Document*, Glib::ustring const&, boost::python::api::object const&, boost::python::api::object const&)':
/home/andre/svn-gnome/glom/glom/python_embed/glom_python.cc:208: undefined reference to `boost::python::import(boost::python::str)'
glom/python_embed/glom_python.o: In function `boost::python::api::const_attribute_policies::get(boost::python::api::object const&, char const*)':
/usr/include/boost/python/object_attributes.hpp:74: undefined reference to `boost::python::api::getattr(boost::python::api::object const&, char const*)'
glom/python_embed/glom_python.o: In function `Glom::glom_python_call(Glom::Field::glom_field_type, Glom::Document*, Glib::ustring const&, boost::python::api::object const&, boost::python::api::object const&)':
/home/andre/svn-gnome/glom/glom/python_embed/glom_python.cc:231: undefined reference to `boost::python::api::object::object(boost::python::handle<_object> const&)'
/home/andre/svn-gnome/glom/glom/python_embed/glom_python.cc:237: undefined reference to `boost::python::api::object::object(boost::python::handle<_object> const&)'
glom/python_embed/glom_python.o: In function `expect_non_null<PyObject>':
/usr/include/boost/python/errors.hpp:45: undefined reference to `boost::python::throw_error_already_set()'
/usr/include/boost/python/errors.hpp:45: undefined reference to `boost::python::throw_error_already_set()'
glom/python_embed/glom_python.o: In function `str':
/usr/include/boost/python/str.hpp:148: undefined reference to `boost::python::detail::str_base::str_base(char const*)'
glom/python_embed/glom_python.o: In function `Glom::glom_python_call(Glom::Field::glom_field_type, Glom::Document*, Glib::ustring const&, boost::python::api::object const&, boost::python::api::object const&)':
/home/andre/svn-gnome/glom/glom/python_embed/glom_python.cc:248: undefined reference to `boost::python::import(boost::python::str)'
glom/python_embed/glom_python.o: In function `str':
/usr/include/boost/python/str.hpp:148: undefined reference to `boost::python::detail::str_base::str_base(char const*)'
glom/python_embed/glom_python.o: In function `Glom::glom_python_call(Glom::Field::glom_field_type, Glom::Document*, Glib::ustring const&, boost::python::api::object const&, boost::python::api::object const&)':
/home/andre/svn-gnome/glom/glom/python_embed/glom_python.cc:256: undefined reference to `boost::python::import(boost::python::str)'
glom/python_embed/glom_python.o: In function `str':
/usr/include/boost/python/str.hpp:148: undefined reference to `boost::python::detail::str_base::str_base(char const*)'
glom/python_embed/glom_python.o: In function `Glom::glom_python_call(Glom::Field::glom_field_type, Glom::Document*, Glib::ustring const&, boost::python::api::object const&, boost::python::api::object const&)':
/home/andre/svn-gnome/glom/glom/python_embed/glom_python.cc:284: undefined reference to `boost::python::exec(boost::python::str, boost::python::api::object, boost::python::api::object)'
glom/python_embed/glom_python.o: In function `arg_to_python':
/usr/include/boost/python/converter/builtin_converters.hpp:126: undefined reference to `boost::python::converter::do_return_to_python(char const*)'
glom/python_embed/glom_python.o: In function `boost::python::api::const_item_policies::get(boost::python::api::object const&, boost::python::api::object const&)':
/usr/include/boost/python/object_items.hpp:68: undefined reference to `boost::python::api::getitem(boost::python::api::object const&, boost::python::api::object const&)'
glom/python_embed/glom_python.o: In function `expect_non_null<PyObject>':
/usr/include/boost/python/errors.hpp:45: undefined reference to `boost::python::throw_error_already_set()'
/usr/include/boost/python/errors.hpp:45: undefined reference to `boost::python::throw_error_already_set()'
/usr/include/boost/python/errors.hpp:45: undefined reference to `boost::python::throw_error_already_set()'
glom/python_embed/glom_python.o: In function `str':
/usr/include/boost/python/str.hpp:148: undefined reference to `boost::python::detail::str_base::str_base(char const*)'
glom/python_embed/glom_python.o: In function `Glom::glom_execute_python_function_implementation(Glib::ustring const&, std::map<Glib::ustring, Gnome::Gda::Value, std::less<Glib::ustring>, std::allocator<std::pair<Glib::ustring const, Gnome::Gda::Value> > > const&, Glom::Document*, Glib::ustring const&, Glom::sharedptr<Glom::Field const> const&, Gnome::Gda::Value const&, Glib::RefPtr<Gnome::Gda::Connection> const&, Glom::PythonUICallbacks const&)':
/home/andre/svn-gnome/glom/glom/python_embed/glom_python.cc:372: undefined reference to `boost::python::import(boost::python::str)'
glom/python_embed/glom_python.o: In function `extract_pointer':
/usr/include/boost/python/extract.hpp:219: undefined reference to `boost::python::converter::get_lvalue_from_python(_object*, boost::python::converter::registration const&)'
glom/python_embed/glom_python.o: In function `boost::python::converter::extract_pointer<Glom::PyGlomRecord*>::operator()() const':
/usr/include/boost/python/extract.hpp:233: undefined reference to `boost::python::converter::throw_no_pointer_from_python(_object*, boost::python::converter::registration const&)'
glom/python_embed/glom_python.o: In function `str':
/usr/include/boost/python/str.hpp:148: undefined reference to `boost::python::detail::str_base::str_base(char const*)'
glom/python_embed/glom_python.o: In function `Glom::glom_evaluate_python_function_implementation(Glom::Field::glom_field_type, Glib::ustring const&, std::map<Glib::ustring, Gnome::Gda::Value, std::less<Glib::ustring>, std::allocator<std::pair<Glib::ustring const, Gnome::Gda::Value> > > const&, Glom::Document*, Glib::ustring const&, Glom::sharedptr<Glom::Field const> const&, Gnome::Gda::Value const&, Glib::RefPtr<Gnome::Gda::Connection> const&)':
/home/andre/svn-gnome/glom/glom/python_embed/glom_python.cc:410: undefined reference to `boost::python::import(boost::python::str)'
glom/python_embed/glom_python.o: In function `extract_pointer':
/usr/include/boost/python/extract.hpp:219: undefined reference to `boost::python::converter::get_lvalue_from_python(_object*, boost::python::converter::registration const&)'
glom/python_embed/glom_python.o: In function `Glom::glom_evaluate_python_function_implementation(Glom::Field::glom_field_type, Glib::ustring const&, std::map<Glib::ustring, Gnome::Gda::Value, std::less<Glib::ustring>, std::allocator<std::pair<Glib::ustring const, Gnome::Gda::Value> > > const&, Glom::Document*, Glib::ustring const&, Glom::sharedptr<Glom::Field const> const&, Gnome::Gda::Value const&, Glib::RefPtr<Gnome::Gda::Connection> const&)':
/home/andre/svn-gnome/glom/glom/python_embed/glom_python.cc:460: undefined reference to `boost::python::api::operator==(boost::python::api::object const&, boost::python::api::object const&)'
glom/python_embed/glom_python.o: In function `extract_pointer':
/usr/include/boost/python/extract.hpp:219: undefined reference to `boost::python::converter::get_lvalue_from_python(_object*, boost::python::converter::registration const&)'
glom/python_embed/glom_python.o: In function `boost::python::converter::extract_pointer<char const*>::operator()() const':
/usr/include/boost/python/extract.hpp:233: undefined reference to `boost::python::converter::throw_no_pointer_from_python(_object*, boost::python::converter::registration const&)'
glom/python_embed/glom_python.o:(.gcc_except_table+0x3a8): undefined reference to `typeinfo for boost::python::error_already_set'
glom/python_embed/glom_python.o:(.gcc_except_table+0x508): undefined reference to `typeinfo for boost::python::error_already_set'
glom/python_embed/glom_python.o: In function `pointer_deep_arg_to_python':
/usr/include/boost/python/converter/arg_to_python.hpp:215: undefined reference to `boost::python::converter::detail::arg_to_python_base::arg_to_python_base(void const volatile*, boost::python::converter::registration const&)'
/usr/include/boost/python/converter/arg_to_python.hpp:215: undefined reference to `boost::python::converter::detail::arg_to_python_base::arg_to_python_base(void const volatile*, boost::python::converter::registration const&)'
glom/python_embed/glom_python.o: In function `boost::python::api::enable_binary<boost::python::api::object, int, boost::python::api::object>::type boost::python::api::operator!=<boost::python::api::object, int>(boost::python::api::object const&, int const&)':
/usr/include/boost/python/object_operators.hpp:95: undefined reference to `boost::python::api::operator!=(boost::python::api::object const&, boost::python::api::object const&)'
glom/python_embed/glom_python.o: In function `expect_non_null<PyObject>':
/usr/include/boost/python/errors.hpp:45: undefined reference to `boost::python::throw_error_already_set()'
glom/libglom/.libs/libglom-1.14.so: undefined reference to `boost::python::converter::rvalue_from_python_stage1(_object*, boost::python::converter::registration const&)'
glom/libglom/.libs/libglom-1.14.so: undefined reference to `boost::python::converter::rvalue_from_python_stage2(_object*, boost::python::converter::rvalue_from_python_stage1_data&, boost::python::converter::registration const&)'
collect2: ld returned 1 exit status
make[2]: *** [glom/glom] Error 1
make[2]: Leaving directory `/home/andre/svn-gnome/glom'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/andre/svn-gnome/glom'
make: *** [all] Error 2
Comment 1 Murray Cumming 2010-04-12 07:19:57 UTC
I guess it's just not linking to the boost library, though it's strange that the configure test didn't fail. Is there a -lboost* visible in the previous build output?

What version of Fedora is this? Hopefully newer distro versions are more likely to have a version that we can use, with a library name that we can guess.

If that is the problem then you might be able to hack our .m4 script to find the (probably weirdly named, changed by the distro, shared library):
http://git.gnome.org/browse/glom/tree/macros/ax_boost_python_murrayc.m4

But it might not be worth it. I've read stuff that suggests that this will be more consistent since the latest boost version.
Comment 2 André Klapper 2010-04-12 08:31:22 UTC
(In reply to comment #1)
> I guess it's just not linking to the boost library, though it's strange that
> the configure test didn't fail. Is there a -lboost* visible in the previous
> build output?

No. After "Leaving directory `/home/andre/svn-gnome/glom/docs/user-guide" there is no "-lboost" in the output.

> What version of Fedora is this?

Fedora 12.

> Hopefully newer distro versions are more likely
> to have a version that we can use, with a library name that we can guess.
> 
> If that is the problem then you might be able to hack our .m4 script to find
> the (probably weirdly named, changed by the distro, shared library):
> http://git.gnome.org/browse/glom/tree/macros/ax_boost_python_murrayc.m4

That script says "Note that this expects boost/ to be at some top-level such as /usr/include/" but /usr/include/boost/ exists on Fedora 12.
Comment 3 David King 2010-04-12 08:40:52 UTC
(In reply to comment #2)
> (In reply to comment #1)
> > I guess it's just not linking to the boost library, though it's strange that
> > the configure test didn't fail. Is there a -lboost* visible in the previous
> > build output?
> 
> No. After "Leaving directory `/home/andre/svn-gnome/glom/docs/user-guide" there
> is no "-lboost" in the output.

Can you please check config.status (in the top build directory) for the contents of the variable BOOST_PYTHON_LIBS? For me it is ‘-lboost_python’. It might be useful to simply attach the whole config.status, as that would enable use to see all the include paths and other flags that might affect the build.
Comment 4 André Klapper 2010-04-12 08:52:27 UTC
Created attachment 158465 [details]
config.status

Looks like BOOST_PYTHON_LIBS did not get set here.
Comment 5 Murray Cumming 2010-04-12 11:53:37 UTC
Could we see config.log too, please.

And could you tell me what /usr/lib/libboost*python.so, or suchlike, you have.
Comment 6 André Klapper 2010-04-12 12:01:30 UTC
Created attachment 158473 [details]
config.log

$:andre\> ls -al /usr/lib/libboost*py*
lrwxrwxrwx. 1 root root     28 /usr/lib/libboost_python-mt.so
                               -> libboost_python-mt.so.1.39.0
-rwxr-xr-x. 1 root root 298408 /usr/lib/libboost_python-mt.so.1.39.0
lrwxrwxrwx. 1 root root     28 /usr/lib/libboost_python-mt.so.5
                               -> libboost_python-mt.so.1.39.0
lrwxrwxrwx. 1 root root     25 /usr/lib/libboost_python.so
                               -> libboost_python.so.1.39.0
-rwxr-xr-x. 1 root root 298404 /usr/lib/libboost_python.so.1.39.0
lrwxrwxrwx. 1 root root     25 /usr/lib/libboost_python.so.5
                               -> libboost_python.so.1.39.0
Comment 7 Murray Cumming 2010-04-12 12:08:55 UTC
This might be just one failure before a later success, but maybe it's the real problem, from config.log:

In file included from /usr/include/boost/python/detail/prefix.hpp:13,
                 from /usr/include/boost/python/module.hpp:8,
                 from conftest.cpp:35:
/usr/include/boost/python/detail/wrap_python.hpp:50:23: error: pyconfig.h: No such file or directory

I guess you have that pyconfig.h somewhere, but not where it expects it. Can you find it?
Comment 8 André Klapper 2010-04-12 12:12:21 UTC
(In reply to comment #7)
> I guess you have that pyconfig.h somewhere, but not where it expects it. Can
> you find it?

It's at /usr/include/python2.6/pyconfig.h
Comment 9 Murray Cumming 2010-04-12 12:14:13 UTC
(In reply to comment #8)
> (In reply to comment #7)
> > I guess you have that pyconfig.h somewhere, but not where it expects it. Can
> > you find it?
> 
> It's at /usr/include/python2.6/pyconfig.h

Yeah. It's there on my Ubuntu too.
Comment 10 André Klapper 2010-04-12 14:28:40 UTC
http://git.gnome.org/browse/glom/commit/?id=1ece63f5313e7563f4bb732a6268751e10f52aaa fixed this for me.
I can now compile glom.
Comment 11 Daniel Elstner 2010-04-12 16:53:58 UTC
I just pushed some further cleanups to the macro. Among other things, I made it fatally abort with an error message if boost::python could not be found.