You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Alan Conway <ac...@redhat.com> on 2011/07/28 20:37:50 UTC

Enabling --visibility=hidden for the C++ build.

I've been fiddling with this on and off for a while. I think it's mostly done 
but I'm stuck, would appreciate any fresh insights:

See 
https://issues.apache.org/jira/browse/QPID-3163?focusedCommentId=13072475#comment-13072475

---
Work to date is on branch https://svn.apache.org/repos/asf/qpid/branches/qpid-3163.

The bulk of the extern declarations etc. are in place, however I'm stuck on a 
run time failure. The boost::any code, used by boost::program_options, used by 
qpid/Options, does a typeinfo comparison which fails due to multiple typeinfo 
symbols for std::string. (See http://gcc.gnu.org/wiki/Visibility).

One (impractical) solution that I have verified is to wrap every #include 
<string> like this

#pragma GCC visibility push(default)
#include <string>
#pragma GCC visibility pop

This includes occurences in system header files! Clearly not practical.

Another solution would be to re-write qpid::Options to avoid boost::options.

There are further issues to resolve after getting past this one, not clear how 
many although I think we're nearly there.

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org