diff -rupN protobuf-2.5.0/src/google/protobuf/extension_set.h protobuf25/src/google/protobuf/extension_set.h
--- protobuf-2.5.0/src/google/protobuf/extension_set.h	2013-02-26 09:56:42.000000000 -0800
+++ protobuf25/src/google/protobuf/extension_set.h	2015-08-03 09:20:52.000000000 -0700
@@ -794,7 +794,7 @@ class MessageTypeTraits {
                                   MutableType message, ExtensionSet* set) {
     set->SetAllocatedMessage(number, field_type, NULL, message);
   }
-  static inline MutableType Release(int number, FieldType field_type,
+  static inline MutableType Release(int number, FieldType,
                                     ExtensionSet* set) {
     return static_cast<Type*>(set->ReleaseMessage(
         number, Type::default_instance()));
diff -rupN protobuf-2.5.0/src/google/protobuf/stubs/common.h protobuf25/src/google/protobuf/stubs/common.h
--- protobuf-2.5.0/src/google/protobuf/stubs/common.h	2013-02-26 09:56:38.000000000 -0800
+++ protobuf25/src/google/protobuf/stubs/common.h	2015-08-03 09:20:28.000000000 -0700
@@ -720,7 +720,7 @@ class LIBPROTOBUF_EXPORT LogFinisher {
 
 namespace internal {
 template<typename T>
-T* CheckNotNull(const char *file, int line, const char *name, T* val) {
+T* CheckNotNull(const char *, int, const char *name, T* val) {
   if (val == NULL) {
     GOOGLE_LOG(FATAL) << name;
   }
diff -rupN protobuf-2.5.0/src/google/protobuf/stubs/stl_util.h protobuf-2.5.0/src/google/protobuf/stubs/stl_util.h
--- protobuf-2.5.0/src/google/protobuf/stubs/stl_util.h	2016-09-07 22:22:15.544125062 -0700
+++ protobuf-2.5.0/src/google/protobuf/stubs/stl_util.h	2016-09-07 22:28:23.750441200 -0700
@@ -82,7 +82,7 @@
 // already work on all current implementations.
 inline char* string_as_array(string* str) {
   // DO NOT USE const_cast<char*>(str->data())! See the unittest for why.
-  return str->empty() ? NULL : &*str->begin();
+  return &(*str)[0];
 }
 
 // STLDeleteElements() deletes all the elements in an STL container and clears
