[ http://issues.apache.org/jira/browse/XERCESC-1331?page=history ] Alberto Massari resolved XERCESC-1331: --------------------------------------
Resolution: Fixed I have committed Jesse's patch; even if the latest C++ standard promotes the usage of unnamed namespace, it's a shift from the current programming style of Xerces. Alberto > Globals intended for use in a single file should be static > ---------------------------------------------------------- > > Key: XERCESC-1331 > URL: http://issues.apache.org/jira/browse/XERCESC-1331 > Project: Xerces-C++ > Type: Bug > Versions: 2.5.0, 2.6.0 > Environment: Win32, Visual Studio .NET 2003, static library > Reporter: Jesse Pelton > Priority: Minor > > util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp declares and uses several > global variables. These variables do not appear to be intended to be visible > outside the module. If this is the case, they should be declared static. > I bumped into this when trying to build the Apache XML Security code with a) > Xerces namespace support disabled and b) a statically linked Xerces library. > XML Security has a modified version of the BinHTTPURLInputStream class, > including copies of the offending globals. This results in warnings from the > linker when it detects that the globals are multiply defined. They should > fix their end, too (I'll file a report there, too), but the Xerces code > should correctly declare its intent as well. > Changing util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp is simple. The > following lines need "static " inserted at the beginning: > HMODULE gWinsockLib = NULL; > LPFN_GETHOSTBYNAME gWSgethostbyname = NULL; > LPFN_INET_ADDR gWSinet_addr = NULL; > LPFN_GETHOSTBYADDR gWSgethostbyaddr = NULL; > LPFN_HTONS gWShtons = NULL; > LPFN_SOCKET gWSsocket = NULL; > LPFN_CONNECT gWSconnect = NULL; > LPFN_SEND gWSsend = NULL; > LPFN_RECV gWSrecv = NULL; > LPFN_SHUTDOWN gWSshutdown = NULL; > LPFN_CLOSESOCKET gWSclosesocket = NULL; > LPFN_WSACLEANUP gWSACleanup = NULL; > The result: > static HMODULE gWinsockLib = NULL; > static LPFN_GETHOSTBYNAME gWSgethostbyname = NULL; > static LPFN_INET_ADDR gWSinet_addr = NULL; > static LPFN_GETHOSTBYADDR gWSgethostbyaddr = NULL; > static LPFN_HTONS gWShtons = NULL; > static LPFN_SOCKET gWSsocket = NULL; > static LPFN_CONNECT gWSconnect = NULL; > static LPFN_SEND gWSsend = NULL; > static LPFN_RECV gWSrecv = NULL; > static LPFN_SHUTDOWN gWSshutdown = NULL; > static LPFN_CLOSESOCKET gWSclosesocket = NULL; > static LPFN_WSACLEANUP gWSACleanup = NULL; -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]