This is an automated email from the ASF dual-hosted git repository.
wesm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new f4f6269 ARROW-3466: [C++] Avoid leaking protobuf symbols
f4f6269 is described below
commit f4f62699e5d5b821e83dc2f902d486cf5c2b2755
Author: Antoine Pitrou <[email protected]>
AuthorDate: Tue Oct 9 09:00:02 2018 -0400
ARROW-3466: [C++] Avoid leaking protobuf symbols
Our linker script hides "google::*" symbols exported from various C++
modules, but that isn't enough to actually hide all symbols. Some symbols
(vtables, destructors, "guard variables"...) aren't hidden.
The ORC library links protobuf statically, and we link ORC statically. So
we ended up exporting protobuf symbols. When linking another protobuf instance
dynamically (like tensorflow does), this can wreak havoc. Hiding all symbols
fixes the issue.
Author: Antoine Pitrou <[email protected]>
Closes #2731 from pitrou/ARROW-3466-protobuf-symbol-leak and squashes the
following commits:
0aa4648aa <Antoine Pitrou> ARROW-3466: Avoid leaking protobuf symbols
---
cpp/src/arrow/symbols.map | 3 +++
1 file changed, 3 insertions(+)
diff --git a/cpp/src/arrow/symbols.map b/cpp/src/arrow/symbols.map
index 69717f0..96faf59 100644
--- a/cpp/src/arrow/symbols.map
+++ b/cpp/src/arrow/symbols.map
@@ -62,6 +62,9 @@
je_arrow_*;
# ORC destructors
_ZThn8_N3orc*;
+ # Protobuf symbols that aren't hidden by the C++ section below
+ # (destructors, vtables, other stuff)
+ *N6google8protobuf*;
extern "C++" {
# devtoolset or -static-libstdc++ - the Red Hat devtoolset statically