In other words, see if: nm --defined-only libgandiva.a | grep _ZNSt8ios_base4InitC1Ev
outputs anything. Regards Antoine. Le 16/12/2018 à 14:03, Antoine Pitrou a écrit : > > Does the static gandiva lib bundle libstdc++? Otherwise you'll probably > need to load it explicitly in the Java process. > > Regards > > Antoine. > > > Le 16/12/2018 à 04:53, Ravindra Pindikura a écrit : >> I think this happens if any of the cpp files that are used for IR generation >> (clang —emit-llvm) includes <iostream>. For decimal support, I’m generating >> IR code from arrow/util/decimal.cc <http://decimal.cc/> which includes >> <iostream> (many times in the header file chain). >> >>> On Dec 16, 2018, at 9:14 AM, Ravindra Pindikura <ravin...@dremio.com> wrote: >>> >>> Hi, >>> >>> I’ve been working on adding decimal support in gandiva - I’m hitting a >>> symbol resolution error with std::ios_base::Init with the java tests on >>> ubuntu. Any ideas on what I may be doing wrong ? >>> >>> LLVM ERROR: Program used external function '_ZNSt8ios_base4InitC1Ev' which >>> could not be resolved! >>> >>> >>> I’ve the same test (add two decimals) in three forms : >>> >>> 1. Cpp test executable with shared gandiva lib >>> >>> Works on both ubuntu and Mac >>> >>> 2. Cpp test executable with static gandiva lib >>> >>> Works on both ubuntu and Mac >>> >>> 3. Java test (internally uses jni over static gandiva lib) >>> >>> Works on Mac, but fails on ubuntu !! >>> >>> Ubuntu failure : https://travis-ci.org/apache/arrow/jobs/468562791 >>> >>> I tried switching to ORC JIT (from MC JIT) but that didn’t help. In the >>> JIT, the symbol is not found in the process address space for ubuntu+java. >>> For all the other cases, the symbol is found. >>> >>> https://github.com/apache/arrow/pull/2942/files#diff-5ef29a5cabe384645dbf7a9c704aceeaR36 >>> >>> Thanks & regards, >>> Ravindra. >> >>