Index: third_party/protobuf/patches/0010-uninline-generated-code.patch |
diff --git a/third_party/protobuf/patches/0010-uninline-generated-code.patch b/third_party/protobuf/patches/0010-uninline-generated-code.patch |
new file mode 100644 |
index 0000000000000000000000000000000000000000..85274dee8dcceb279f5b9164664b43ebeafad7a0 |
--- /dev/null |
+++ b/third_party/protobuf/patches/0010-uninline-generated-code.patch |
@@ -0,0 +1,34 @@ |
+unchanged: |
+--- protobuf-cleaned/src/google/protobuf/compiler/cpp/cpp_file.cc 2015-12-30 13:21:46.000000000 -0800 |
++++ protobuf-patched/src/google/protobuf/compiler/cpp/cpp_file.cc 2016-03-31 13:25:40.252007316 -0700 |
+@@ -337,7 +337,7 @@ |
+ "namespace {\n" |
+ "\n" |
+ "static void MergeFromFail(int line) GOOGLE_ATTRIBUTE_COLD;\n" |
+- "static void MergeFromFail(int line) {\n" |
++ "GOOGLE_ATTRIBUTE_NOINLINE static void MergeFromFail(int line) {\n" |
+ " GOOGLE_CHECK(false) << __FILE__ << \":\" << line;\n" |
+ "}\n" |
+ "\n" |
+only in patch2: |
+unchanged: |
+--- protobuf-cleaned/src/google/protobuf/compiler/cpp/cpp_message.cc 2015-12-30 13:21:46.000000000 -0800 |
++++ protobuf-patched/src/google/protobuf/compiler/cpp/cpp_message.cc 2016-03-31 13:25:40.888006485 -0700 |
+@@ -1035,7 +1035,7 @@ |
+ } |
+ |
+ printer->Print(vars, |
+- "void Swap($classname$* other);\n" |
++ "GOOGLE_ATTRIBUTE_NOINLINE void Swap($classname$* other);\n" |
+ "\n" |
+ "// implements Message ----------------------------------------------\n" |
+ "\n" |
+@@ -2586,7 +2586,7 @@ |
+ // ownership situation: swapping across arenas or between an arena and a |
+ // heap requires copying. |
+ printer->Print( |
+- "void $classname$::Swap($classname$* other) {\n" |
++ "GOOGLE_ATTRIBUTE_NOINLINE void $classname$::Swap($classname$* other) {\n" |
+ " if (other == this) return;\n" |
+ " if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) {\n" |
+ " InternalSwap(other);\n" |