We might have to split up the implementation of Decimal128 into
multiple compilation units based on what parts of it are LLVM
IR-friendly
On Sun, Dec 16, 2018 at 7:04 AM Antoine Pitrou <anto...@python.org> wrote:
>
>
> 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.
> >>
> >>