(file) Return to ProviderLoading.txt CVS log (file) (dir) Up to [Pegasus] / pegasus / doc

 1 konrad.r 1.1 OpenPegasus implements RTLD_GLOBAL when loading providers.
 2              
 3              The significance of this is that the provider writer has to be aware off the following:
 4              
 5               - C++ providers sharing a shared library, such as a third party resource library,
 6                 is  accessible amongst the C++ providers that use it (and have been compiled to use the
 7                 shared library). Exceptions from such third-party libraries can be recognized in those
 8 kumpf    1.2    providers. Previously in Pegasus 2.4 the exceptions were only recognized in the first
 9 konrad.r 1.1    provider loaded while in the other providers they would not.
10 kumpf    1.2 
11 konrad.r 1.1    Problem: Possible collision of symbolic names of third party libraries. For example, if
12                 the providers were using multiple third-party libraries with the same symbolic names in
13 kumpf    1.2    the same namespace, then only the symbolic name solved would be called.
14                 Solution:
15                  1). Use different namespaces.
16                  2). Use symbol hidding for different versions
17 konrad.r 1.1         (http://www.gnu.org/software/binutils/manual/ld-2.9.1/html_node/ld_25.html)
18              
19                 More information is located at http://gcc.gnu.org/faq.html#dso
20              
21               - C providers are not affected. Third party libraries linked to the provider libraries
22 kumpf    1.2    behave unchanged - they are shared amongst providers.
23 konrad.r 1.1 

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2