Merge pull request #5048 from jozefizso/fix/4579_backport_for_3.6.x

Include version information in Windows binaries (backport #4579 for 3.6.x)
diff --git a/src/google/protobuf/io/gzip_stream.h b/src/google/protobuf/io/gzip_stream.h
index 15b02fe..df1a446 100644
--- a/src/google/protobuf/io/gzip_stream.h
+++ b/src/google/protobuf/io/gzip_stream.h
@@ -118,7 +118,7 @@
     ZLIB = 2,
   };
 
-  struct Options {
+  struct LIBPROTOBUF_EXPORT Options {
     // Defaults to GZIP.
     Format format;
 
diff --git a/src/google/protobuf/repeated_field.h b/src/google/protobuf/repeated_field.h
index b47ea99..fbfbf94 100644
--- a/src/google/protobuf/repeated_field.h
+++ b/src/google/protobuf/repeated_field.h
@@ -705,13 +705,13 @@
 // Declarations of the specialization as we cannot define them here, as the
 // header that defines ProtocolMessage depends on types defined in this header.
 #define DECLARE_SPECIALIZATIONS_FOR_BASE_PROTO_TYPES(TypeName)                 \
-    template<>                                                                 \
+    template<> LIBPROTOBUF_EXPORT                                              \
     TypeName* GenericTypeHandler<TypeName>::NewFromPrototype(                  \
         const TypeName* prototype, google::protobuf::Arena* arena);                      \
-    template<>                                                                 \
+    template<> LIBPROTOBUF_EXPORT                                              \
     google::protobuf::Arena* GenericTypeHandler<TypeName>::GetArena(                     \
         TypeName* value);                                                      \
-    template<>                                                                 \
+    template<> LIBPROTOBUF_EXPORT                                              \
     void* GenericTypeHandler<TypeName>::GetMaybeArenaPointer(                  \
         TypeName* value);