Index: third_party/protobuf/README.chromium |
diff --git a/third_party/protobuf/README.chromium b/third_party/protobuf/README.chromium |
index 3d69cc4a9b4bdb320ec9dd54297726fa48ae36e1..d5d87caa17f6e581371e5d2b133d335d8a7592ca 100644 |
--- a/third_party/protobuf/README.chromium |
+++ b/third_party/protobuf/README.chromium |
@@ -9,8 +9,7 @@ Security Critical: yes |
Steps used to create the current version: |
1. Pull the release from https://github.com/google/protobuf/releases |
-2. Add build files (BUILD.gn, proto_library.gni, protobuf.gyp, |
- protobuf_lite.gypi, protobuf_nacl.gyp). |
+2. Add build files (BUILD.gn, proto_library.gni) |
Be sure to update the list of source files, as additional .cc files and |
headers might have been added -- you need to find the transitive closure of |
@@ -26,21 +25,7 @@ Steps used to create the current version: |
For future releases, it will be worth looking into which patches still need |
to be applied. |
-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 -j.tdata -j.tbss \ |
- obj/third_party/protobuf/libprotobuf_lite.a |
- |
- should produce the output |
- |
- objdump: section '.tbss' mentioned in a -j option, but not found in any input file |
- objdump: section '.tdata' mentioned in a -j option, but not found in any input file |
- 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 |
+5. 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. |
@@ -49,8 +34,19 @@ Steps used to create the current version: |
$ cd third_party/protobuf/src |
$ ../../../out/Debug/protoc --python_out=../python google/protobuf/descriptor.proto |
-7. Add an __init__.py to protobuf/ that adds third_party/six/ to Python path. |
-8. Update README.chromium. |
+6. Add an __init__.py to protobuf/ that adds third_party/six/ to Python path. |
+7. Update README.chromium. |
+ |
+Note about libmirclient: |
+ |
+On Ubuntu, Chromium has an indirect dependency on the system |
+libprotobuf-lite through libmirclient (through GTK). The symbols in |
+the system library conflict with Chromium's libprotobuf-lite used on |
+component builds. |
+ |
+mirclient.* are added to stub out libmirclient.so.9 to prevent loading |
+the system libprotobuf-lite. Chromium's replacement libmirclient will |
+get loaded, but its symbols will never be used directly or indirectly. |
Description of the patches: |
@@ -90,11 +86,3 @@ 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. |