Index: third_party/protobuf/README.chromium |
diff --git a/third_party/protobuf/README.chromium b/third_party/protobuf/README.chromium |
index 8838fbc2715f88ba266247fb32e58147b04ad0a0..edb4d6f1c58234adf3daceaf8376b142b0117a49 100644 |
--- a/third_party/protobuf/README.chromium |
+++ b/third_party/protobuf/README.chromium |
@@ -26,7 +26,18 @@ Steps used to create the current version: |
For future releases, it will be worth looking into which patches still need |
to be applied. |
-5. Generate descriptor_pb2.py using something like the following steps. Make |
+5. Extract all globals to src/google/protobuf/globals.cc and prefix these |
+ symbols with 'cr_'. On Linux, the command |
+ |
+ $ objdump -t -j.data -j.bss obj/third_party/protobuf/libprotobuf_lite.a |
+ |
+ should produce the output |
+ |
+ objdump: section '.bss' mentioned in a -j option, but not found in any input file |
+ objdump: section '.data' mentioned in a -j option, but not found in any input file |
+ |
+ This will require updating 0012-extract-globals.patch. |
+6. 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. |
@@ -35,8 +46,8 @@ Steps used to create the current version: |
$ cd third_party/protobuf/src |
$ ../../../out/Debug/protoc --python_out=../python google/protobuf/descriptor.proto |
-6. Add an __init__.py to protobuf/ that adds third_party/six/ to Python path. |
-7. Update README.chromium. |
+7. Add an __init__.py to protobuf/ that adds third_party/six/ to Python path. |
+8. Update README.chromium. |
Description of the patches: |
@@ -76,3 +87,11 @@ Description of the patches: |
removed in C++11 mode. |
Fixed in https://github.com/google/protobuf/pull/1549 |
+ |
+- 0012-extract-globals.patch |
+ |
+ Fixes https://crbug.com/700120. Moves everything that would have |
+ gotten linked into .data or .bss sections into globals.cc so that |
+ Chromium may build a shared library containing just protobuf |
+ globals. Also prefixes every symbol with 'cr_' to avoid conflicting |
+ with symbols from the system protobuf. |