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

Reply via email to