Add an option to "hide" symbols in shared libraries except when they are declared public.
Extends efforts already in place for Windows builds.
Excludes an effort to determine what symbols should be considered "public" interfaces.
The gcc 4 -fvisibility option is said to:
...very substantially improve linking and load times of shared object libraries, produce more optimized code, provide near-perfect API export and prevent symbol clashes. It is strongly recommended that you use this in any shared objects you distribute.
See here: http://gcc.gnu.org/wiki/Visibility
Attached patch (patch.txt) will build libqpid-proton.so shared library using this flag.
It reduces number of symbols from 700+ to 500+.