Open zhaonaiy opened 5 months ago
By the way, the command we used for Arrow 9 compilation on ARM platform is as follows,
cmake .. -DARROW_GANDIVA_JAVA=ON -DARROW_GANDIVA=ON -DARROW_WITH_RE2=ON -DARROW_WITH_UTF8PROC=ON
Thanks.
On arrow 16.1 (libgandiva_jni.so is NOT compiled manually, but copied from https://repository.apache.org/#nexus-search;quick~arrow-gandiva) , we did the same thing, but it throwed out a different error: "GandivaException: Failed to make LLVM module due to Could not create LLJIT instance: Symbols not found: [ llvm_orc_registerEHFrameSectionWrapper ]"
Hope this helpful. Thanks!
@kou ,We have tried and double checked, our issue is different from 39695. Please advise, Thanks a lot!
What did you try?
we have found this method lies in "libLLVMSupport.a"
How did you find it?
Could you show the output of nm /usr/local/llvm/lib/libLLVMSupport.a | grep _ZN4llvm3sys14DynamicLibrary19getPermanentLibraryEPKcPSs
?
@kou Below is what we have tried,
$ nm --undefined-only --dynamic release/libgandiva_jni.so.900.0.0 |grep ZN4llvm3sys14DynamicLibrary19getPermanentLibraryEPKcPSs
U _ZN4llvm3sys14DynamicLibrary19getPermanentLibraryEPKcPSs
$ nm /usr/local/llvm/lib/libLLVMSupport.a |grep _ZN4llvm3sys14DynamicLibrary19getPermanentLibraryEPKcPSs
But nothing returned.
$ nm --undefined-only --dynamic release/libgandiva_jni.so.900.0.0 |c++filt |grep "llvm::sys::DynamicLibrary::getPermanentLibrary"
U llvm::sys::DynamicLibrary::getPermanentLibrary(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)
$ nm /usr/local/llvm/lib/libLLVMSupport.a|c++filt|grep "llvm::sys::DynamicLibrary::getPermanentLibrary"
U llvm::sys::DynamicLibrary::getPermanentLibrary(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)
0000000000000000 T llvm::sys::DynamicLibrary::getPermanentLibrary(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)
From above, llvm::sys::DynamicLibrary::getPermanentLibrary(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)
CAN'T be found in libgandiva_jni.so, however llvm::sys::DynamicLibrary::getPermanentLibrary(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)
has been found. If they are same?
Wait for your advice. Thanks!
Could you also try https://github.com/apache/arrow/issues/41935#issuecomment-2145328656 and https://github.com/apache/arrow/issues/39695#issuecomment-1912186637 (LD_PRELOAD
)?
Describe the bug, including details regarding any error messages, version, and platform.
Hello, We have encountered a wierd issue about libgandiva_jni.so. Same Java program calls Arrow 9.0.0's libgandiva_jni.so (compiled successfully) with different results on ARM and x86 platform. On ARM platform, it throwed out an exception as below,
Then we traced this problem, and found it was blocked in the method:
Furthermore, we have found this method lies in "libLLVMSupport.a", but we are sure this libLLVMSupport.a file has been linked in shared lib. Below is the command we used:
Environment details: OS: CentOS v7.6 Tools: GCC 8.3.1, LLVM 14
If I missed anything, please let me know.
Thanks,
NaiYan.
Component(s)
C++ - Gandiva