I regenerated with http://www.crystax.net/en/android/ndk/7, 
now, arm-linux-androideabi-ld libjzmq.so doesn't return any link problem 
(anymore) with Lib STD : Great!
But still same problem in the android application : loadlibrary works with zmq 
and still fails (unsatisfies link error) with jzmq.
Don't understand!
Best regards.
--- En date de : Mer 18.7.12,
 Eric <[email protected]> a écrit :

De: Eric <[email protected]>
Objet: Re: [zeromq-dev] (no subject)
À: "ZeroMQ development list" <[email protected]>, [email protected]
Date: Mercredi 18 juillet 2012, 1h31

Thanks,
I replaced assign by clear/append. But it still not works...something make me 
feel that I don't have any STD lib available :making a call 
to arm-linux-androideabi-ld libjzmq.so give me this :
/home/xxx/libjzmq.so: undefined reference to `std::basic_ios<char, 
std::char_traits<char> >::init(std::basic_streambuf<char,
 std::char_traits<char> >*)'/home/xxx/libjzmq.so: undefined reference to 
`__gnu_cxx::__exchange_and_add(int volatile*, int)'/home/xxx/libjzmq.so: 
undefined reference to 
`std::_Rb_tree_decrement(std::_Rb_tree_node_base*)'/home/xxx/libjzmq.so: 
undefined reference to `std::basic_string<char, std::char_traits<char>, 
std::allocator<char>
 >::basic_string(std::string const&)'/home/xxx/libjzmq.so: undefined reference 
 >to `std::string::compare(char const*) const'/home/xxx/libjzmq.so: undefined 
 >reference to `std::locale::locale()'/home/xxx/libjzmq.so: undefined reference 
 >to `__aeabi_uldivmod'/home/xxx/libjzmq.so: undefined reference to 
 >`std::string::find(char const*, unsigned int, unsigned int) 
 >const'/home/xxx/libjzmq.so: undefined reference to `std::string::append(char 
 >const*)'/home/xxx/libjzmq.so: undefined reference to 
 >`std::__throw_bad_alloc()'/home/xxx/libjzmq.so: undefined reference to 
 >`std::string::assign(std::string const&)'/home/xxx/libjzmq.so: undefined 
 >reference to `vtable for std::basic_stringstream<char, 
 >std::char_traits<char>, std::allocator<char> >'/home/xxx/libjzmq.so: 
 >undefined reference to `std::basic_string<char, std::char_traits<char>,
 std::allocator<char> >::~basic_string()'/home/xxx/libjzmq.so: undefined 
reference to `std::basic_stringstream<char, std::char_traits<char>, 
std::allocator<char> >::~basic_stringstream()'/home/xxx/libjzmq.so: undefined 
reference to `std::__throw_length_error(char const*)'/home/xxx/libjzmq.so: 
undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base 
const*)'/home/xxx/libjzmq.so: undefined reference to `VTT for 
std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> 
>'/home/xxx/libjzmq.so: undefined reference to `__gnu_cxx::__atomic_add(int 
volatile*, int)'/home/xxx/libjzmq.so: undefined reference to 
`std::string::_Rep::_S_empty_rep_storage'/home/xxx/libjzmq.so: undefined 
reference to `std::ostream& std::ostream::_M_insert<unsigned long>(unsigned 
long)'/home/xxx/libjzmq.so:
 undefined reference to `std::ostream::operator<<(int)'/home/xxx/libjzmq.so: 
undefined reference to `std::ios_base::ios_base()'/home/xxx/libjzmq.so: 
undefined reference to `std::string::_M_leak()'/home/xxx/libjzmq.so: undefined 
reference to `std::basic_ostream<char, std::char_traits<char> >& 
std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, 
std::char_traits<char> >&, char const*, int)'/home/xxx/libjzmq.so: undefined 
reference to `std::string::_M_mutate(unsigned int, unsigned int, unsigned 
int)'/home/xxx/libjzmq.so: undefined reference to 
`std::locale::~locale()'/home/xxx/libjzmq.so: undefined reference to 
`std::string::clear()'/home/xxx/libjzmq.so: undefined reference to 
`std::__throw_logic_error(char const*)'/home/xxx/libjzmq.so: undefined 
reference to
 `std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, 
std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)'/home/xxx/libjzmq.so: 
undefined reference to `std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::basic_string(char const*, std::allocator<char> 
const&)'/home/xxx/libjzmq.so: undefined reference to 
`std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, 
std::_Rb_tree_node_base&)'/home/xxx/libjzmq.so: undefined reference to 
`std::string::_M_leak_hard()'/home/xxx/libjzmq.so: undefined reference to 
`vtable for __cxxabiv1::__vmi_class_type_info'/home/xxx/libjzmq.so: undefined 
reference to `std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::basic_string(std::string const&, unsigned int, unsigned 
int)'/home/xxx/libjzmq.so: undefined reference to `vtable for
 std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> 
>'/home/xxx/libjzmq.so: undefined reference to `vtable for 
std::basic_streambuf<char, std::char_traits<char> >'/home/xxx/libjzmq.so: 
undefined reference to `std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::basic_string(char const*, unsigned int, 
std::allocator<char> const&)'/home/xxx/libjzmq.so: undefined reference to 
`std::ios_base::~ios_base()'/home/xxx/libjzmq.so: undefined reference to 
`__aeabi_uidivmod'/home/xxx/libjzmq.so: undefined reference to `vtable for 
std::basic_ios<char, std::char_traits<char> >'/home/xxx/libjzmq.so: undefined 
reference to `std::basic_istream<char, std::char_traits<char> 
>::~basic_istream()'/home/xxx/libjzmq.so: undefined reference to
 `std::_Rb_tree_increment(std::_Rb_tree_node_base*)'/home/xxx/libjzmq.so: 
undefined reference to `operator delete(void*, std::nothrow_t 
const&)'/home/xxx/libjzmq.so: undefined reference to 
`std::string::_Rep::_S_create(unsigned int, unsigned int, std::allocator<char> 
const&)'/home/xxx/libjzmq.so: undefined reference to 
`std::__throw_out_of_range(char const*)'/home/xxx/libjzmq.so: undefined 
reference to `operator new(unsigned int, std::nothrow_t 
const&)'/home/xxx/libjzmq.so: undefined reference to 
`std::string::_Rep::_M_destroy(std::allocator<char> 
const&)'/home/xxx/libjzmq.so: undefined reference to `std::string::append(char 
const*, unsigned int)'
I'll have a look to what is going on with my configuration.
Best regards.
Eric

--- En date de : Mer
 18.7.12, Ron Elliott <[email protected]> a écrit :

De: Ron Elliott <[email protected]>
Objet: Re: [zeromq-dev] (no subject)
À: "ZeroMQ development list" <[email protected]>, [email protected]
Date: Mercredi 18 juillet 2012, 0h53

perhaps this is an option: http://www.crystax.net/en/android/ndk/7
On Jul 17, 2012 3:48 PM, "Victor Perron" <[email protected]> wrote:

Same answer as before. I paste it down there.

Hi,

In that case it seems that you discovered something serious. 


I took a look at it, and indeed the assign() symbol from std::string class 
seems undefined.
That would mean, Android does _not_ define such a function in its SDK.

Now, the proper way to get around this is a patch to Zeromq 3.x.

You'll have to fix those lines (my guess):

./src/ipc_listener.cpp:151:    filename.assign(addr_);
./src/socket_base.cpp:331:            options.last_endpoint.assign (addr_);



./src/socket_base.cpp:480:        options.last_endpoint.assign (addr_);
./src/tcp_address.cpp:503:        addr_str.assign (name_, delimiter - name_);
./src/tcp_address.cpp:504:        mask_str.assign (delimiter + 1);




./src/tcp_address.cpp:511:        addr_str.assign (name_);

... and try to compile again. If there are no other undefined symbols, that 
should work.
That issue did not exist in ZeroMQ 2.2 though, that one didn't make an 
extensive use of std::string.




Keep me updated, we'll see for a pull request when I'll be less busy ;)


Best regards,

I'll take a look for an acceptable patch tomorrow, if nobody shows up with a 
better suspect/solution of course !
On Wed, Jul 18, 2012 at 12:35 AM, Eric <[email protected]> wrote:



Trying to use jzmq under android.


I generated using zmq3.x procedure, having to change config.sub and 
config.guess files but generation is OK and match the scheme 
on http://www.zeromq.org/build:android.



But I always get unsatisfiedlink error when loading library libjzmq 
(loadlibrary(jzmq)), whereas i'm able to load libzmq without any problem. I've 
seen other people asking the same question without answer. Searching for hours 
over the net, no idea, any help would be appreciated!



Best regards.


Eric


_______________________________________________

zeromq-dev mailing list

[email protected]

http://lists.zeromq.org/mailman/listinfo/zeromq-dev





-- 
Victor



_______________________________________________

zeromq-dev mailing list

[email protected]

http://lists.zeromq.org/mailman/listinfo/zeromq-dev




-----La pièce jointe associée suit-----

_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

-----La pièce jointe associée suit-----

_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to