diff -Naur poco-1.14.2-all-orig/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h poco-1.14.2-all/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h --- poco-1.14.2-all-orig/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h 2025-05-12 12:00:13.000000000 +0300 +++ poco-1.14.2-all/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h 2025-10-09 12:58:53.032306200 +0300 @@ -38,7 +38,7 @@ template -class Diagnostics +class ODBC_API Diagnostics /// Utility class providing functionality for retrieving ODBC diagnostic /// records. Diagnostics object must be created with corresponding handle /// as constructor argument. During construction, diagnostic records fields @@ -245,6 +245,7 @@ // explicit instantiation definition #ifndef POCO_DOC +#if !defined(POCO_COMPILER_MINGW) #if defined(POCO_OS_FAMILY_WINDOWS) extern template class Diagnostics; extern template class Diagnostics; @@ -256,6 +257,7 @@ extern template class ODBC_API Diagnostics; extern template class ODBC_API Diagnostics; #endif +#endif #endif diff -Naur poco-1.14.2-all-orig/Data/ODBC/include/Poco/Data/ODBC/Error.h poco-1.14.2-all/Data/ODBC/include/Poco/Data/ODBC/Error.h --- poco-1.14.2-all-orig/Data/ODBC/include/Poco/Data/ODBC/Error.h 2025-05-12 12:00:13.000000000 +0300 +++ poco-1.14.2-all/Data/ODBC/include/Poco/Data/ODBC/Error.h 2025-10-09 12:49:53.193458200 +0300 @@ -35,7 +35,7 @@ template -class Error +class ODBC_API Error /// Class encapsulating ODBC diagnostic record collection. Collection is generated /// during construction. Class provides access and string generation for the collection /// as well as individual diagnostic records. @@ -127,6 +127,7 @@ // explicit instantiation definition #ifndef POCO_DOC +#if !defined(POCO_COMPILER_MINGW) #if defined(POCO_OS_FAMILY_WINDOWS) extern template class Error; extern template class Error; @@ -140,6 +141,7 @@ #endif #endif +#endif using EnvironmentError = Error; using ConnectionError = Error; diff -Naur poco-1.14.2-all-orig/Data/ODBC/include/Poco/Data/ODBC/ODBCException.h poco-1.14.2-all/Data/ODBC/include/Poco/Data/ODBC/ODBCException.h --- poco-1.14.2-all-orig/Data/ODBC/include/Poco/Data/ODBC/ODBCException.h 2025-05-12 12:00:13.000000000 +0300 +++ poco-1.14.2-all/Data/ODBC/include/Poco/Data/ODBC/ODBCException.h 2025-10-09 12:58:27.817217400 +0300 @@ -38,7 +38,7 @@ template -class HandleException: public ODBCException +class ODBC_API HandleException: public ODBCException { public: HandleException(const H& handle): _error(handle) @@ -141,6 +141,7 @@ // explicit instantiation definition #ifndef POCO_DOC +#if !defined(POCO_COMPILER_MINGW) #if defined(POCO_OS_FAMILY_WINDOWS) extern template class HandleException; extern template class HandleException; @@ -154,6 +155,7 @@ #endif #endif +#endif using EnvironmentException = HandleException; diff -Naur poco-1.14.2-all-orig/Foundation/include/Poco/BufferedBidirectionalStreamBuf.h poco-1.14.2-all/Foundation/include/Poco/BufferedBidirectionalStreamBuf.h --- poco-1.14.2-all-orig/Foundation/include/Poco/BufferedBidirectionalStreamBuf.h 2025-05-12 12:00:11.000000000 +0300 +++ poco-1.14.2-all/Foundation/include/Poco/BufferedBidirectionalStreamBuf.h 2025-10-09 13:00:20.183118200 +0300 @@ -30,7 +30,7 @@ template > -class BasicBufferedBidirectionalStreamBuf: public std::basic_streambuf +class Foundation_API BasicBufferedBidirectionalStreamBuf: public std::basic_streambuf /// This is an implementation of a buffered bidirectional /// streambuf that greatly simplifies the implementation of /// custom streambufs of various kinds. @@ -182,11 +182,13 @@ // We provide an instantiation for char. // +#if !defined(POCO_COMPILER_MINGW) #if defined(POCO_OS_FAMILY_WINDOWS) extern template class BasicBufferedBidirectionalStreamBuf>; #else extern template class Foundation_API BasicBufferedBidirectionalStreamBuf>; #endif +#endif using BufferedBidirectionalStreamBuf = BasicBufferedBidirectionalStreamBuf>; diff -Naur poco-1.14.2-all-orig/Foundation/include/Poco/BufferedStreamBuf.h poco-1.14.2-all/Foundation/include/Poco/BufferedStreamBuf.h --- poco-1.14.2-all-orig/Foundation/include/Poco/BufferedStreamBuf.h 2025-05-12 12:00:11.000000000 +0300 +++ poco-1.14.2-all/Foundation/include/Poco/BufferedStreamBuf.h 2025-10-09 13:00:33.583045100 +0300 @@ -30,7 +30,7 @@ template > -class BasicBufferedStreamBuf: public std::basic_streambuf +class Foundation_API BasicBufferedStreamBuf: public std::basic_streambuf /// This is an implementation of a buffered streambuf /// that greatly simplifies the implementation of /// custom streambufs of various kinds. @@ -164,11 +164,13 @@ // We provide an instantiation for char. // +#if !defined(POCO_COMPILER_MINGW) #if defined(POCO_OS_FAMILY_WINDOWS) extern template class BasicBufferedStreamBuf>; #else extern template class Foundation_API BasicBufferedStreamBuf>; #endif +#endif using BufferedStreamBuf = BasicBufferedStreamBuf>; diff -Naur poco-1.14.2-all-orig/Foundation/include/Poco/Dynamic/Struct.h poco-1.14.2-all/Foundation/include/Poco/Dynamic/Struct.h --- poco-1.14.2-all-orig/Foundation/include/Poco/Dynamic/Struct.h 2025-05-12 12:00:11.000000000 +0300 +++ poco-1.14.2-all/Foundation/include/Poco/Dynamic/Struct.h 2025-10-09 12:50:47.372765800 +0300 @@ -64,7 +64,7 @@ template , typename S = std::set> -class Struct +class Foundation_API Struct /// Struct allows to define a named collection of Var objects. { public: @@ -288,6 +288,7 @@ }; +#if !defined(POCO_COMPILER_MINGW) #if defined(POCO_OS_FAMILY_WINDOWS) extern template class Struct; @@ -305,6 +306,7 @@ extern template class Foundation_API Struct, OrderedSet>; #endif +#endif template <> diff -Naur poco-1.14.2-all-orig/Foundation/include/Poco/UTFString.h poco-1.14.2-all/Foundation/include/Poco/UTFString.h --- poco-1.14.2-all-orig/Foundation/include/Poco/UTFString.h 2025-05-12 12:00:11.000000000 +0300 +++ poco-1.14.2-all/Foundation/include/Poco/UTFString.h 2025-10-09 13:03:10.754291400 +0300 @@ -307,6 +307,7 @@ } // namespace Poco +#if !defined(POCO_COMPILER_MINGW) #if defined(POCO_USE_STRING16) extern template class Foundation_API std::basic_string; #endif @@ -314,6 +315,7 @@ #if defined(POCO_USE_STRING32) extern template class Foundation_API std::basic_string; #endif +#endif #endif // Foundation_UTFString_INCLUDED diff -Naur poco-1.14.2-all-orig/Foundation/include/Poco/UnbufferedStreamBuf.h poco-1.14.2-all/Foundation/include/Poco/UnbufferedStreamBuf.h --- poco-1.14.2-all-orig/Foundation/include/Poco/UnbufferedStreamBuf.h 2025-05-12 12:00:11.000000000 +0300 +++ poco-1.14.2-all/Foundation/include/Poco/UnbufferedStreamBuf.h 2025-10-09 12:30:04.853968200 +0300 @@ -29,7 +29,7 @@ template -class BasicUnbufferedStreamBuf: public std::basic_streambuf +class Foundation_API BasicUnbufferedStreamBuf: public std::basic_streambuf /// This is an implementation of an unbuffered streambuf /// that greatly simplifies the implementation of /// custom streambufs of various kinds. @@ -164,11 +164,13 @@ // We provide an instantiation for char. // +#if !defined(POCO_COMPILER_MINGW) #if defined(POCO_OS_FAMILY_WINDOWS) extern template class BasicUnbufferedStreamBuf>; #else extern template class Foundation_API BasicUnbufferedStreamBuf>; #endif +#endif using UnbufferedStreamBuf = BasicUnbufferedStreamBuf>; diff -Naur poco-1.14.2-all-orig/Foundation/src/UnbufferedStreamBuf.cpp poco-1.14.2-all/Foundation/src/UnbufferedStreamBuf.cpp --- poco-1.14.2-all-orig/Foundation/src/UnbufferedStreamBuf.cpp 2025-05-12 12:00:11.000000000 +0300 +++ poco-1.14.2-all/Foundation/src/UnbufferedStreamBuf.cpp 2025-10-09 12:28:42.424996200 +0300 @@ -21,5 +21,4 @@ #else template class BasicUnbufferedStreamBuf>; #endif - } diff -Naur poco-1.14.2-all-orig/Foundation/src/VarHolder.cpp poco-1.14.2-all/Foundation/src/VarHolder.cpp --- poco-1.14.2-all-orig/Foundation/src/VarHolder.cpp 2025-05-12 12:00:11.000000000 +0300 +++ poco-1.14.2-all/Foundation/src/VarHolder.cpp 2025-10-09 12:46:07.757064700 +0300 @@ -21,7 +21,6 @@ namespace Poco { namespace Dynamic { - #if defined(POCO_OS_FAMILY_WINDOWS) template class Foundation_API Struct; diff -Naur poco-1.14.2-all-orig/JSON/include/Poco/JSON/Array.h poco-1.14.2-all/JSON/include/Poco/JSON/Array.h --- poco-1.14.2-all-orig/JSON/include/Poco/JSON/Array.h 2025-05-12 12:00:12.000000000 +0300 +++ poco-1.14.2-all/JSON/include/Poco/JSON/Array.h 2025-10-09 12:50:12.424222700 +0300 @@ -34,6 +34,7 @@ } +#if !defined(POCO_COMPILER_MINGW) #if defined(POCO_OS_FAMILY_WINDOWS) // Explicitly instantiated shared pointer in JSON library extern template class Poco::SharedPtr; @@ -41,6 +42,7 @@ // Explicitly instantiated shared pointer in JSON library extern template class JSON_API Poco::SharedPtr; #endif +#endif namespace JSON { diff -Naur poco-1.14.2-all-orig/JSON/include/Poco/JSON/Object.h poco-1.14.2-all/JSON/include/Poco/JSON/Object.h --- poco-1.14.2-all-orig/JSON/include/Poco/JSON/Object.h 2025-05-12 12:00:12.000000000 +0300 +++ poco-1.14.2-all/JSON/include/Poco/JSON/Object.h 2025-10-09 12:50:20.315701500 +0300 @@ -41,6 +41,7 @@ } +#if !defined(POCO_COMPILER_MINGW) #if defined(POCO_OS_FAMILY_WINDOWS) // Explicitly instatiated shared pointer in JSON library extern template class Poco::SharedPtr; @@ -48,6 +49,7 @@ // Explicitly instatiated shared pointer in JSON library extern template class JSON_API Poco::SharedPtr; #endif +#endif namespace JSON { diff -Naur poco-1.14.2-all-orig/Net/include/Poco/Net/HTTPBasicStreamBuf.h poco-1.14.2-all/Net/include/Poco/Net/HTTPBasicStreamBuf.h --- poco-1.14.2-all-orig/Net/include/Poco/Net/HTTPBasicStreamBuf.h 2025-05-12 12:00:12.000000000 +0300 +++ poco-1.14.2-all/Net/include/Poco/Net/HTTPBasicStreamBuf.h 2025-10-09 12:50:03.048356900 +0300 @@ -24,6 +24,9 @@ namespace Poco { + +template class Net_API BasicBufferedStreamBuf, Net::HTTPBufferAllocator>; + namespace Net {