diff --git a/CHANGELOG b/CHANGELOG index 379dcf6fd..37c3ff039 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -215,7 +215,17 @@ Release 1.4.0 (2010-12-14) named PocoDataMySQL, PocoDataODBC and PocoDataSQLite. - fixed SF# 3125498: Linux NetworkInterface::list() doesn't return IPv6 IPs - fixed SF# 3125457: IPv6 IPAddress tests are wrong - +- Added initialization functions for the NetSSL_OpenSSL and Crypto libraries. + These should be called instead of relying on automatic initialization, + implemented with static initializer objects, as this won't work with + statically linked executables (where the linker won't include the + static initializer object). + The functions are Poco::Crypto::initializeCrypto(), Poco::Crypto::uninitializeCrypto(), + Poco::Net::initializeSSL() and Poco::Net::uninitializeSSL(). + Applications using Crypto and/or NetSSL should call these methods appropriately at + program startup and shutdown. + Note: In release 1.3.6, similar functions have been added to the Net library. + Release 1.3.6p2 (2010-01-15) ============================ @@ -1396,4 +1406,4 @@ building the libraries. -- -$Id: //poco/1.3/dist/CHANGELOG#137 $ +$Id: //poco/1.3/dist/CHANGELOG#138 $ diff --git a/Crypto/include/Poco/Crypto/Crypto.h b/Crypto/include/Poco/Crypto/Crypto.h index d643b80e8..64b5792a6 100644 --- a/Crypto/include/Poco/Crypto/Crypto.h +++ b/Crypto/include/Poco/Crypto/Crypto.h @@ -1,7 +1,7 @@ // // Crypto.h // -// $Id: //poco/1.3/Crypto/include/Poco/Crypto/Crypto.h#4 $ +// $Id: //poco/1.3/Crypto/include/Poco/Crypto/Crypto.h#5 $ // // Library: Crypto // Package: CryptoCore @@ -102,7 +102,7 @@ namespace Poco { namespace Crypto { -void initializeCrypto(); +void Crypto_API initializeCrypto(); /// Initialize the Crypto library, as well as the underlying OpenSSL /// libraries, by calling OpenSSLInitializer::initialize(). /// @@ -119,7 +119,7 @@ void initializeCrypto(); /// must be performed. -void uninitializeCrypto(); +void Crypto_API uninitializeCrypto(); /// Uninitializes the Crypto library by calling /// OpenSSLInitializer::uninitialize(). diff --git a/NEWS b/NEWS index 5d5e01331..2fc4217db 100644 --- a/NEWS +++ b/NEWS @@ -1,55 +1,5 @@ -Release 1.3 (2007-05-07) -======================== - -This release contains major improvements and new features. - -Summary of Changes: -- HashMap and HashSet classes (Foundation) -- Tuple class template (Foundation) -- SharedMemory class (Foundation) -- FileStream, FileInputStream, FileOutputStream classes that - support Unicode (UTF-8) filenames on Windows (Foundation) -- improvements and bugfixes in the Net library, mostly HTTP -- DynamicAny class (Foundation) -- improvements to NetworkInterface class (Net) -- Condition class, implementing POSIX condition variable-style - thread synchronization (Foundation) -- upgraded to PCRE 7.1 (Foundation) -- improved Unicode/UTF-8 support -- NodeAppender class for faster DOM tree creation (XML) -- Checksum class (Foundation) -- lots of bugfixes and other improvements - please see the - CHANGELOG for details - -Incompatible Changes and Transition Issues: -The HashFunction class template has been changed in an incompatible -way. The member function formerly named hash() is now the function -call operator. If you have defined your own HashFunction classes, -you have to update your code. Sorry for the inconvenience. - -On Windows, POCO now builds with Unicode/UTF-8 support -(POCO_WIN32_UTF8) enabled by default. If you need the previous -behavior, remove the corresponding #define from Poco/Config.h - - -Release 1.2 (2006-08-29) -======================== - -This release contains major improvements and new features. -Summary of changes (please see CHANGELOG for details): -- namespaces and header locations have changed -- improvements to command line options handling -- improvements to HTTP server and client classes -- support for raw sockets and ICMP -- improvements to DateTime, bugfixes in Timezone -- improvements to Logging (including a new LogStream class) -- HashTable classes in Foundation -- ThreadPool now supports thread priorities -- ActiveMethod now supports start policies; improved exception support -- typesafe sprintf-like formatting -- Process::launch() now supports I/O redirection to pipes -- improvements to the build system (configure; make; make install is now supported) -- various other bugfixes and enchancements +As of release 1.4 this file is no longer maintained. +Please see the CHANGELOG for what's new in each release. -- -$Id: //poco/1.3/dist/NEWS#5 $ +$Id: //poco/1.3/dist/NEWS#6 $ diff --git a/Net/include/Poco/Net/Net.h b/Net/include/Poco/Net/Net.h index 428775f1a..6c4865930 100644 --- a/Net/include/Poco/Net/Net.h +++ b/Net/include/Poco/Net/Net.h @@ -1,7 +1,7 @@ // // Net.h // -// $Id: //poco/1.3/Net/include/Poco/Net/Net.h#6 $ +// $Id: //poco/1.3/Net/include/Poco/Net/Net.h#7 $ // // Library: Net // Package: NetCore @@ -81,13 +81,13 @@ namespace Poco { namespace Net { -void initializeNetwork(); +void Net_API initializeNetwork(); /// Initialize the network subsystem. /// Calls WSAStartup() on Windows, does nothing /// on other platforms. -void uninitializeNetwork(); +void Net_API uninitializeNetwork(); /// Uninitialize the network subsystem. /// Calls WSACleanup() on Windows, does nothing /// on other platforms. diff --git a/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h b/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h index 8084e0544..53ff0519f 100644 --- a/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h +++ b/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h @@ -1,7 +1,7 @@ // // NetSSL.h // -// $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h#5 $ +// $Id: //poco/1.3/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h#6 $ // // Library: NetSSL_OpenSSL // Package: SSLCore @@ -81,7 +81,7 @@ namespace Poco { namespace Net { -void initializeSSL(); +void NetSSL_API initializeSSL(); /// Initialize the NetSSL library, as well as the underlying OpenSSL /// libraries, by calling Poco::Crypto::OpenSSLInitializer::initialize(). /// @@ -98,7 +98,7 @@ void initializeSSL(); /// must be performed. -void uninitializeSSL(); +void NetSSL_API uninitializeSSL(); /// Uninitializes the NetSSL library by calling /// Poco::Crypto::OpenSSLInitializer::uninitialize() and /// shutting down the SSLManager. diff --git a/NetSSL_OpenSSL/src/SSLManager.cpp b/NetSSL_OpenSSL/src/SSLManager.cpp index 171a8358e..77ccf262e 100644 --- a/NetSSL_OpenSSL/src/SSLManager.cpp +++ b/NetSSL_OpenSSL/src/SSLManager.cpp @@ -1,7 +1,7 @@ // // SSLManager.cpp // -// $Id: //poco/1.3/NetSSL_OpenSSL/src/SSLManager.cpp#18 $ +// $Id: //poco/1.3/NetSSL_OpenSSL/src/SSLManager.cpp#19 $ // // Library: NetSSL_OpenSSL // Package: SSLCore @@ -81,14 +81,12 @@ const bool SSLManager::VAL_FIPS_MODE(false); SSLManager::SSLManager() { - Poco::Crypto::OpenSSLInitializer::initialize(); } SSLManager::~SSLManager() { shutdown(); - Poco::Crypto::OpenSSLInitializer::uninitialize(); } diff --git a/VERSION b/VERSION index 711cbe881..fe31a092f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.7d1 \ No newline at end of file +1.4.0b5 \ No newline at end of file diff --git a/build/config/Darwin b/build/config/Darwin index 74f029aad..8f3a5a4b4 100644 --- a/build/config/Darwin +++ b/build/config/Darwin @@ -1,16 +1,14 @@ # -# $Id: //poco/1.3/build/config/Darwin#9 $ +# $Id: //poco/1.3/build/config/Darwin#11 $ # # Darwin # -# Build settings for Mac OS X 10.5/10.6 (GCC 4.0.1) +# Build settings for Mac OS X 10.6 (GCC 4.2) # The build settings defined in this file are compatible -# with XCode 3.1 C++ projects. +# with XCode 3.2.5 C++ projects. # -# NOTE: This build configuration will build 64-bit targets -# on Mac OS X 10.6, but place them into the Darwin/i386 -# directories. Use the Darwin32 and Darwin64 build configurations -# for correct build locations. +# NOTE: This build configuration will build 64-bit binaries. +# Use the Darwin32 build configuration to build 32-bit binaries. # # @@ -18,16 +16,21 @@ # LINKMODE = SHARED +ARCHFLAGS ?= -arch x86_64 +POCO_TARGET_OSARCH ?= x86_64 +POCO_HOST_OSARCH := $(POCO_TARGET_OSARCH) + + # # Tools # -CC = gcc-4.0 -CXX = g++-4.0 +CC = gcc-4.2 +CXX = g++-4.2 LINK = $(CXX) -bind_at_load LIB = libtool -static -o RANLIB = ranlib SHLIB = $(CXX) -dynamiclib -o $@ -DYLIB = $(CXX) -dynamic -bundle -read_only_relocs suppress -Wl,-bind_at_load -o $@ +DYLIB = $(CXX) -dynamic -bundle -Wl,-bind_at_load -o $@ SHLIBLN = $(POCO_BASE)/build/script/shlibln STRIP = DEP = $(POCO_BASE)/build/script/makedepend.gcc @@ -57,10 +60,10 @@ SHAREDOPT_CC = -fPIC SHAREDOPT_CXX = -fPIC SHAREDOPT_LINK = DEBUGOPT_CC = -O0 -g -gdwarf-2 -D_DEBUG=$(DEBUGLEVEL) -DEBUGOPT_CXX = -O0 -g -gdwarf-2 -D_DEBUG=$(DEBUGLEVEL) -D_GLIBCXX_DEBUG=1 -D_GLIBCXX_DEBUG_PEDANTIC=1 -mfix-and-continue -fvisibility-inlines-hidden +DEBUGOPT_CXX = -O0 -g -gdwarf-2 -D_DEBUG=$(DEBUGLEVEL) -mfix-and-continue -fvisibility-inlines-hidden -fasm-blocks DEBUGOPT_LINK = RELEASEOPT_CC = -DNDEBUG -Os -RELEASEOPT_CXX = -DNDEBUG -O2 -fvisibility-inlines-hidden +RELEASEOPT_CXX = -DNDEBUG -Os -fvisibility-inlines-hidden -fasm-blocks RELEASEOPT_LINK = # diff --git a/build/config/iPhone b/build/config/iPhone index c8a8e80f0..a3ecd1224 100644 --- a/build/config/iPhone +++ b/build/config/iPhone @@ -1,5 +1,5 @@ # -# $Id: //poco/1.3/build/config/iPhone#3 $ +# $Id: //poco/1.3/build/config/iPhone#4 $ # # iPhone # @@ -89,7 +89,7 @@ RELEASEOPT_LINK = # # System Specific Flags # -SYSFLAGS = -DPOCO_HAVE_IPv6 -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_STAT64 +SYSFLAGS = -DPOCO_HAVE_IPv6 -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_STAT64 -DPOCO_NO_SHAREDLIBS # # System Specific Libraries diff --git a/build/rules/global b/build/rules/global index 2341177ea..90c3628ed 100644 --- a/build/rules/global +++ b/build/rules/global @@ -1,5 +1,5 @@ # -# $Id: //poco/1.3/build/rules/global#13 $ +# $Id: //poco/1.3/build/rules/global#15 $ # # global # @@ -74,7 +74,7 @@ endif ifeq ($(findstring MINGW,$(POCO_HOST_OSNAME)),MINGW) POCO_HOST_OSNAME = MinGW endif -POCO_HOST_OSARCH = $(subst /,-,$(shell uname -m | tr ' ' _)) +POCO_HOST_OSARCH ?= $(subst /,-,$(shell uname -m | tr ' ' _)) # # Begin Sun platforms @@ -111,6 +111,11 @@ ifndef POCO_CONFIG POCO_CONFIG = $(POCO_HOST_OSNAME) endif +# +# Include System Specific Settings +# +include $(POCO_BASE)/build/config/$(POCO_CONFIG) + # # Check if a 64bit build is requested # @@ -124,11 +129,6 @@ else OSARCH_POSTFIX = endif -# -# Include System Specific Settings -# -include $(POCO_BASE)/build/config/$(POCO_CONFIG) - # # Determine operating system # diff --git a/doc/99100-ReleaseNotes.page b/doc/99100-ReleaseNotes.page index 87413aab7..6a34ef1e1 100644 --- a/doc/99100-ReleaseNotes.page +++ b/doc/99100-ReleaseNotes.page @@ -218,6 +218,16 @@ AAAIntroduction named PocoDataMySQL, PocoDataODBC and PocoDataSQLite. - fixed SF# 3125498: Linux NetworkInterface::list() doesn't return IPv6 IPs - fixed SF# 3125457: IPv6 IPAddress tests are wrong + - Added initialization functions for the NetSSL_OpenSSL and Crypto libraries. + These should be called instead of relying on automatic initialization, + implemented with static initializer objects, as this won't work with + statically linked executables (where the linker won't include the + static initializer object). + The functions are Poco::Crypto::initializeCrypto(), Poco::Crypto::uninitializeCrypto(), + Poco::Net::initializeSSL() and Poco::Net::uninitializeSSL(). + Applications using Crypto and/or NetSSL should call these methods appropriately at + program startup and shutdown. + Note: In release 1.3.6, similar functions have been added to the Net library. !!Incompatible Changes and Possible Transition Issues @@ -239,6 +249,16 @@ AAAIntroduction and release_static have been renamed to debug_static_md and release_static_md, respectively. Also, the suffixes of the static library names have changed to match usual conventions. + - New static initialization functions for the Crypto and NetSSL_OpenSSL libraries + have been added. These should be called instead of relying on automatic initialization, + implemented with static initializer objects, as this won't work with + statically linked executables (where the linker won't include the + static initializer object). + The functions are Poco::Crypto::initializeCrypto(), Poco::Crypto::uninitializeCrypto(), + Poco::Net::initializeSSL() and Poco::Net::uninitializeSSL(). + Applications using Crypto and/or NetSSL should call these methods appropriately at + program startup and shutdown. + Note: In release 1.3.6, similar functions have been added to the Net library. !!!Release 1.3.6p2