Use of global static intializers in code creates problems for a correct Windows 
static build
--------------------------------------------------------------------------------------------

                 Key: QPID-2391
                 URL: https://issues.apache.org/jira/browse/QPID-2391
             Project: Qpid
          Issue Type: Improvement
          Components: C++ Client
         Environment: Windows XP SP3
Visual C++ 9.0

            Reporter: Pete MacKinnon


The use of global static intilaizers like the StaticInit struct in:

 qpid\cpp\src\qpid\client\windows\TCPConnector.cpp
 qpid\cpp\src\qpid\client\windows\SslConnector.cpp

won't work at runtime in a static compile/link of qpidc. The transport factory 
registrations won't happen since the linker will strip out these unreferenced 
symbols. Not a problem in the DLL model. There are few options for addressing 
this in the linker command line (e.g., /INCLUDE:<mangled name of symbol>), in 
the devenv ("Link Library Dependencies", "Use Library Dependency Inputs"), or 
writing function wrappers to force load - none of which seem very useful.

There may be more instances of this pattern in the code elsewhere.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to