Public bug reported:

Binary package hint: gcc-4.5


I'm in a natty environment (created with pbuilder in an Ubuntu maverick).

# pbuilder create --distribution natty --othermirror "deb
http://archive.ubuntu.com/ubuntu natty main restricted universe
multiverse"

# pbuilder --login

Check g++ version:
# g++ --version|head -1
g++ (Ubuntu/Linaro 4.5.1-12ubuntu1) 4.5.2

I install required dependencies:
# apt-get install libxmlrpc-c3-dev libcurl4-openssl-dev

I create a small program which uses the xmlrpc-c library:
------------------------------------------------------------------------
server.cpp
------------------------------------------------------------------------
#include <xmlrpc-c/base.hpp>
#include <xmlrpc-c/registry.hpp>

int main(int argc, char *argv[])
{
    xmlrpc_c::registry RequestManagerRegistry;
    return 0;
}
------------------------------------------------------------------------

I obtain the building libraries with xmlrpc-config:
# xmlrpc-c-config c++2 abyss-server --libs --cflags
-L/usr/lib  -lxmlrpc_server_abyss++ -lxmlrpc_server++
-lxmlrpc_server_abyss -lxmlrpc_server -lxmlrpc_abyss  -lpthread
-lxmlrpc++ -lxmlrpc -lxmlrpc_util -lxmlrpc_xmlparse -lxmlrpc_xmltok
-I/usr/include


I compile the program:
# g++ server.cpp `xmlrpc-c-config c++2 abyss-server --libs --cflags`
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_traceXml'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_struct_size'
/usr/lib/libxmlrpc_server++.so: undefined reference to `xmlrpc_array_size'
/usr/lib/libxmlrpc_server++.so: undefined reference to `xmlrpc_mem_block_free'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_env_clean'
/usr/lib/libxmlrpc_server++.so: undefined reference to `xmlrpc_registry_new'
/usr/lib/libxmlrpc_server++.so: undefined reference to `xmlrpc_mem_block_size'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_serialize_call'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_read_datetime_sec'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_double_new'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_mem_block_new'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_parse_response2'
/usr/lib/libxmlrpc_server++.so: undefined reference to `xmlrpc_registry_free'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_read_base64'
/usr/lib/libxmlrpc_server++.so: undefined reference to 
`xmlrpc_registry_disable_introspection'
/usr/lib/libxmlrpc_server++.so: undefined reference to `xmlrpc_DECREF'
/usr/lib/libxmlrpc_server++.so: undefined reference to 
`xmlrpc_mem_block_contents'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_env_init'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_datetime_new_str'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_string_new'
/usr/lib/libxmlrpc_server++.so: undefined reference to 
`xmlrpc_abort_if_array_bad'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_datetime_new_sec'
/usr/lib/libxmlrpc_server++.so: undefined reference to 
`xmlrpc_registry_process_call'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_INCREF'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_struct_read_member'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_bool_new'
/usr/lib/libxmlrpc_server++.so: undefined reference to 
`xmlrpc_registry_add_method_w_doc'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_vasprintf'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_value_type'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_struct_new'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_strfree'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_read_bool'
/usr/lib/libxmlrpc_server++.so: undefined reference to 
`xmlrpc_registry_set_default_method'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_array_append_item'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_struct_set_value_n'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_nil_new'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_base64_new'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_read_string_lp'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_read_int'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_read_base64_size'
/usr/lib/libxmlrpc_server++.so: undefined reference to `xmlrpc_env_set_fault'
/usr/lib/libxmlrpc_server++.so: undefined reference to `xmlrpc_array_read_item'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_array_new'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_int_new'
/usr/lib/libxmlrpc++.so: undefined reference to `xmlrpc_read_double'
collect2: ld returned 1 exit status

If we look for the missing references manually we can find them:
# nm -D /usr/lib/libxmlrpc++.so|grep trace
000000000000db80 T _ZN8xmlrpc_c3xml5traceERKSsS2_
                 U xmlrpc_traceXml

This used to work with previous versions of gcc:

(in the same environment)
# apt-get install g++-4.4

Check g++ version:
# g++-4.4 --version|head -1
g++-4.4 (Ubuntu/Linaro 4.4.5-10ubuntu1) 4.4.5

# g++-4.4 server.cpp `xmlrpc-c-config c++2 abyss-server --libs --cflags`
# echo $?
0

We need to fix this in order to complete the following merge:
https://bugs.launchpad.net/ubuntu/+source/opennebula/+bug/688666

Thank you

** Affects: gcc-4.5 (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/690779

Title:
  Undefined reference error with methods of libxmlrpc-c3-dev

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to