apache / arrow

Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing
https://arrow.apache.org/
Apache License 2.0
14.43k stars 3.51k forks source link

[C++] version script assignment of 'local' to symbol '__once_proxy' failed: symbol not defined #43355

Open yurivict opened 2 months ago

yurivict commented 2 months ago

Describe the bug, including details regarding any error messages, version, and platform.

Th file cpp/src/gandiva/symbols.map contains the symbol name __once_proxy.

Where is it defined?

Component(s)

C++

Version: 17.0.0 FreeBSD 14.1

kou commented 2 months ago

I think that RHEL's devtoolset's dhstatic-libstdc++ includes it based on the comment: https://github.com/apache/arrow/blob/05ab846b4f96b2ff70e2a5918cb713734b7c063b/cpp/src/gandiva/symbols.map#L22

BTW, what is your problem?

Does the following fix it?

diff --git a/cpp/src/gandiva/symbols.map b/cpp/src/gandiva/symbols.map
index dbce381f3e..794822b7ff 100644
--- a/cpp/src/gandiva/symbols.map
+++ b/cpp/src/gandiva/symbols.map
@@ -21,7 +21,7 @@
   local:
     # devtoolset / static-libstdc++ symbols
     __cxa_*;
-    __once_proxy;
+    __once_proxy*;

     extern "C++" {
       # devtoolset or -static-libstdc++ - the Red Hat devtoolset statically
yurivict commented 2 months ago

This patch fixes the build failure.

kou commented 2 months ago

Could you share the build failure log?