[xsd-users] gcc visibility, serializer-map and typeinfo

Boris Kolpackov boris at codesynthesis.com
Fri Jun 25 11:41:39 EDT 2010


Hi Benjamin,

Benjamin Schindler <bschindler at inf.ethz.ch> writes:
 
> If I have a template class like this:
> 
> template<typename T>
> class Bla {
> // some code
> };
> 
> and I instantiate this template in different dso's, the template will be
> instantiated in each dso with visibility=hidden and they therefore get
> their own type_info object. This problem does not occur with the stl as
> they declare their namespaces like this:
> 
> _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) which expands to
> 
> namespace std __attribute__ ((__visibility__ ("default"))) {
> 
> This means, that the template type gets exported and the type_info
> object get correctly merged. 

Interesting.


> I'll let it up to you to decide what and how you would like to export 
> your stuff. as little as possible is always a good thing, but since 
> libxsd is template only, it might make sense to export the entire 
> namespace may be

Actually, there is way to export the individual template instantiations
that make up the xml_schema namespace. See the description for the
--export-xml-schema option. Your util.dll looks like a good place
to do this.

Boris



More information about the xsd-users mailing list