[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Weird symbol resolution error with llvm JIT in gandiva jni


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 :

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.

Thanks & regards,