Index: third_party/protobuf/patches/03_componentize_protobuf_lite.patch |
diff --git a/third_party/protobuf/patches/03_componentize_protobuf_lite.patch b/third_party/protobuf/patches/03_componentize_protobuf_lite.patch |
deleted file mode 100644 |
index dc5f77ddb4e558aa3eb331e42852d398316d1566..0000000000000000000000000000000000000000 |
--- a/third_party/protobuf/patches/03_componentize_protobuf_lite.patch |
+++ /dev/null |
@@ -1,253 +0,0 @@ |
-diff --git a/third_party/protobuf/BUILD.gn b/third_party/protobuf/BUILD.gn |
-index aaeae89..bcfdca1 100644 |
---- a/third_party/protobuf/BUILD.gn |
-+++ b/third_party/protobuf/BUILD.gn |
-@@ -18,6 +18,12 @@ config("protobuf_config") { |
- } |
- } |
- |
-+if (is_component_build) { |
-+ config("protobuf_use_dlls") { |
-+ defines = [ "PROTOBUF_USE_DLLS" ] |
-+ } |
-+} |
-+ |
- # This config should be applied to targets using generated code from the proto |
- # compiler. It sets up the include directories properly. |
- config("using_proto") { |
-@@ -50,6 +56,7 @@ protobuf_lite_sources = [ |
- "src/google/protobuf/message.h", |
- "src/google/protobuf/message_lite.cc", |
- "src/google/protobuf/message_lite.h", |
-+ "src/google/protobuf/metadata.cc", |
- "src/google/protobuf/metadata.h", |
- "src/google/protobuf/repeated_field.cc", |
- "src/google/protobuf/repeated_field.h", |
-@@ -125,7 +132,7 @@ if (is_win) { |
- ] |
- } |
- |
--source_set("protobuf_lite") { |
-+component("protobuf_lite") { |
- sources = protobuf_lite_sources |
- |
- configs -= [ "//build/config/compiler:chromium_code" ] |
-@@ -141,6 +148,12 @@ source_set("protobuf_lite") { |
- ] |
- |
- cflags = protobuf_lite_cflags |
-+ |
-+ # Required for component builds. See http://crbug.com/172800. |
-+ if (is_component_build) { |
-+ public_configs += [ ":protobuf_use_dlls" ] |
-+ defines = [ "LIBPROTOBUF_EXPORTS" ] |
-+ } |
- } |
- |
- # This is the full, heavy protobuf lib that's needed for c++ .protos that don't |
-@@ -151,7 +164,8 @@ source_set("protobuf_full") { |
- # Prevent people from depending on this outside our file. |
- visibility = [ ":*" ] |
- |
-- sources = [ |
-+ sources = protobuf_lite_sources |
-+ sources += [ |
- "src/google/protobuf/any.cc", |
- "src/google/protobuf/any.h", |
- "src/google/protobuf/any.pb.cc", |
-@@ -281,10 +295,6 @@ source_set("protobuf_full") { |
- ] |
- |
- cflags = protobuf_lite_cflags |
-- |
-- deps = [ |
-- ":protobuf_lite", |
-- ] |
- } |
- |
- # Only compile the compiler for the host architecture. |
-diff --git a/third_party/protobuf/README.chromium b/third_party/protobuf/README.chromium |
-index aa428ad..04d1a9b 100644 |
---- a/third_party/protobuf/README.chromium |
-+++ b/third_party/protobuf/README.chromium |
-@@ -28,6 +28,7 @@ Steps used to create the current version: |
- patch and rebuild protoc; look at step (3) below and the |
- generate_descriptor_proto.sh script in the protobuf root directory for a |
- guide. Based on http://crrev.com/62331 and http://crrev.com/173228 . |
-+ 03: Convert protobuf_lite to a component. Based on http://crrev.com/179806 . |
- (3) Generate descriptor_pb2.py using something like the following steps. Make |
- sure you've regenerated your buildfiles and will build protoc from the |
- newly-modified sources above. |
-diff --git a/third_party/protobuf/protobuf.gyp b/third_party/protobuf/protobuf.gyp |
-index 9fba350..c7aab98 100644 |
---- a/third_party/protobuf/protobuf.gyp |
-+++ b/third_party/protobuf/protobuf.gyp |
-@@ -94,11 +94,21 @@ |
- # to your .proto file. |
- { |
- 'target_name': 'protobuf_lite', |
-- 'type': 'static_library', |
-+ 'type': '<(component)', |
- 'toolsets': ['host', 'target'], |
- 'includes': [ |
- 'protobuf_lite.gypi', |
- ], |
-+ # Required for component builds. See http://crbug.com/172800. |
-+ 'defines': [ |
-+ 'LIBPROTOBUF_EXPORTS', |
-+ 'PROTOBUF_USE_DLLS', |
-+ ], |
-+ 'direct_dependent_settings': { |
-+ 'defines': [ |
-+ 'PROTOBUF_USE_DLLS', |
-+ ], |
-+ }, |
- }, |
- # This is the full, heavy protobuf lib that's needed for c++ .protos |
- # that don't specify the LITE_RUNTIME option. The protocol |
-@@ -109,6 +119,9 @@ |
- 'target_name': 'protobuf_full_do_not_use', |
- 'type': 'static_library', |
- 'toolsets': ['host','target'], |
-+ 'includes': [ |
-+ 'protobuf_lite.gypi', |
-+ ], |
- 'sources': [ |
- 'src/google/protobuf/any.cc', |
- 'src/google/protobuf/any.h', |
-@@ -224,12 +237,6 @@ |
- 'src/google/protobuf/wrappers.pb.cc', |
- 'src/google/protobuf/wrappers.pb.h', |
- ], |
-- 'dependencies': [ |
-- 'protobuf_lite', |
-- ], |
-- 'export_dependent_settings': [ |
-- 'protobuf_lite', |
-- ], |
- }, |
- { |
- 'target_name': 'protoc', |
-diff --git a/third_party/protobuf/protobuf_lite.gypi b/third_party/protobuf/protobuf_lite.gypi |
-index 6415ab2..4d7007a 100644 |
---- a/third_party/protobuf/protobuf_lite.gypi |
-+++ b/third_party/protobuf/protobuf_lite.gypi |
-@@ -26,6 +26,7 @@ |
- 'src/google/protobuf/message.h', |
- 'src/google/protobuf/message_lite.cc', |
- 'src/google/protobuf/message_lite.h', |
-+ 'src/google/protobuf/metadata.cc', |
- 'src/google/protobuf/metadata.h', |
- 'src/google/protobuf/repeated_field.cc', |
- 'src/google/protobuf/repeated_field.h', |
-diff --git a/third_party/protobuf/src/google/protobuf/metadata.cc b/third_party/protobuf/src/google/protobuf/metadata.cc |
-new file mode 100644 |
-index 0000000..99d2cf9 |
---- /dev/null |
-+++ b/third_party/protobuf/src/google/protobuf/metadata.cc |
-@@ -0,0 +1,42 @@ |
-+// Protocol Buffers - Google's data interchange format |
-+// Copyright 2015 Google Inc. All rights reserved. |
-+// https://developers.google.com/protocol-buffers/ |
-+// |
-+// Redistribution and use in source and binary forms, with or without |
-+// modification, are permitted provided that the following conditions are |
-+// met: |
-+// |
-+// * Redistributions of source code must retain the above copyright |
-+// notice, this list of conditions and the following disclaimer. |
-+// * Redistributions in binary form must reproduce the above |
-+// copyright notice, this list of conditions and the following disclaimer |
-+// in the documentation and/or other materials provided with the |
-+// distribution. |
-+// * Neither the name of Google Inc. nor the names of its |
-+// contributors may be used to endorse or promote products derived from |
-+// this software without specific prior written permission. |
-+// |
-+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
-+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
-+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
-+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
-+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
-+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
-+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
-+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
-+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
-+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
-+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-+ |
-+#include <google/protobuf/metadata.h> |
-+ |
-+namespace google { |
-+namespace protobuf { |
-+namespace internal { |
-+ |
-+InternalMetadataWithArena::InternalMetadataWithArena(Arena* arena) |
-+ : ptr_ (arena) {} |
-+ |
-+} // namespace internal |
-+} // namespace protobuf |
-+} // namespace google |
-diff --git a/third_party/protobuf/src/google/protobuf/metadata.h b/third_party/protobuf/src/google/protobuf/metadata.h |
-index 30b2a6e..85065f0 100644 |
---- a/third_party/protobuf/src/google/protobuf/metadata.h |
-+++ b/third_party/protobuf/src/google/protobuf/metadata.h |
-@@ -59,8 +59,7 @@ namespace internal { |
- class LIBPROTOBUF_EXPORT InternalMetadataWithArena { |
- public: |
- InternalMetadataWithArena() : ptr_(NULL) {} |
-- explicit InternalMetadataWithArena(Arena* arena) |
-- : ptr_ (arena) {} |
-+ explicit InternalMetadataWithArena(Arena* arena); |
- |
- ~InternalMetadataWithArena() { |
- if (have_unknown_fields() && arena() == NULL) { |
-diff --git a/third_party/protobuf/src/google/protobuf/stubs/port.h b/third_party/protobuf/src/google/protobuf/stubs/port.h |
-index da695ff..a9f5fd9 100644 |
---- a/third_party/protobuf/src/google/protobuf/stubs/port.h |
-+++ b/third_party/protobuf/src/google/protobuf/stubs/port.h |
-@@ -63,18 +63,33 @@ |
- #define PROTOBUF_LITTLE_ENDIAN 1 |
- #endif |
- #endif |
--#if defined(_MSC_VER) && defined(PROTOBUF_USE_DLLS) |
-- #ifdef LIBPROTOBUF_EXPORTS |
-- #define LIBPROTOBUF_EXPORT __declspec(dllexport) |
-- #else |
-- #define LIBPROTOBUF_EXPORT __declspec(dllimport) |
-+// The macros defined below are required in order to make protobuf_lite a |
-+// component on all platforms. See http://crbug.com/172800. |
-+#if defined(COMPONENT_BUILD) && defined(PROTOBUF_USE_DLLS) |
-+ #if defined(_MSC_VER) |
-+ #ifdef LIBPROTOBUF_EXPORTS |
-+ #define LIBPROTOBUF_EXPORT __declspec(dllexport) |
-+ #else |
-+ #define LIBPROTOBUF_EXPORT __declspec(dllimport) |
-+ #endif |
-+ #ifdef LIBPROTOC_EXPORTS |
-+ #define LIBPROTOC_EXPORT __declspec(dllexport) |
-+ #else |
-+ #define LIBPROTOC_EXPORT __declspec(dllimport) |
-+ #endif |
-+ #else // defined(_MSC_VER) |
-+ #ifdef LIBPROTOBUF_EXPORTS |
-+ #define LIBPROTOBUF_EXPORT __attribute__((visibility("default"))) |
-+ #else |
-+ #define LIBPROTOBUF_EXPORT |
-+ #endif |
-+ #ifdef LIBPROTOC_EXPORTS |
-+ #define LIBPROTOC_EXPORT __attribute__((visibility("default"))) |
-+ #else |
-+ #define LIBPROTOC_EXPORT |
-+ #endif |
- #endif |
-- #ifdef LIBPROTOC_EXPORTS |
-- #define LIBPROTOC_EXPORT __declspec(dllexport) |
-- #else |
-- #define LIBPROTOC_EXPORT __declspec(dllimport) |
-- #endif |
--#else |
-+#else // defined(COMPONENT_BUILD) && defined(PROTOBUF_USE_DLLS) |
- #define LIBPROTOBUF_EXPORT |
- #define LIBPROTOC_EXPORT |
- #endif |