zeromq/libzmq — pull request #817 by ghedo (2014-01-12 11:47:10+00:00)
Title: Only export zmq_* symbols

Right now the libzmq library exports a bunch of C++ symbols additionally to the usual `zmq_*` ones.

```
std::basic_string, std::allocator >::_M_leak_hard()@Base
unsigned char* std::basic_string, std::allocator >::_S_construct(unsigned char const*, unsigned char const*, std::allocator const&, std::forward_iterator_tag)@Base
std::basic_string, std::allocator >::_Rep::_S_empty_rep_storage@Base
std::basic_string, std::allocator >::assign(std::basic_string, std::allocator > const&)@Base
char* std::basic_string, std::allocator >::_S_construct(char*, char*, std::allocator const&, std::forward_iterator_tag)@Base
std::basic_stringbuf, std::allocator >::~basic_stringbuf()@Base
std::basic_stringbuf, std::allocator >::~basic_stringbuf()@Base
std::basic_stringbuf, std::allocator >::~basic_stringbuf()@Base
std::deque, std::allocator >, std::allocator, std::allocator > > >::_M_push_back_aux(std::basic_string, std::allocator > const&)@Base
std::vector >::_M_insert_aux(__gnu_cxx::__normal_iterator > >, unsigned int const&)@Base
```

(this is the demangled version)

This causes problems to tools that track library symbols (e.g. the ones we use in Debian to calculate dependencies), because C++ symbols have the funny habit of changing across architectures.

This patch basically forces ld to only export `zmq_*` symbols.