zhaonaiy opened a new issue, #41935: URL: https://github.com/apache/arrow/issues/41935
### 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, "**undefined symbol: _ZN4llvm3sys14DynamicLibrary19getPermanentLibraryEPKcPSs**". Then we traced this problem, and found it was blocked in the method: **"llvm::sys::DynamicLibrary::getPermanentLibrary(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)"** . 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: `_/usr/bin/c++ -fPIC -Wno-noexcept-type -fdiagnostics-color=always -O3 -DNDEBUG -Wall -fno-semantic-interposition -march=armv8-a -O3 -DNDEBUG -Wl,--version-script=/path/to/arrow-9.0.0/cpp/src/gandiva/jni/symbols.map -shared -Wl,-soname,libgandiva_jni.so.900 -o ../../../release/libgandiva_jni.so.900.0.0 CMakeFiles/gandiva_jni_objlib.dir/config_builder.cc.o CMakeFiles/gandiva_jni_objlib.dir/config_holder.cc.o CMakeFiles/gandiva_jni_objlib.dir/expression_registry_helper.cc.o CMakeFiles/gandiva_jni_objlib.dir/jni_common.cc.o CMakeFiles/gandiva_jni_objlib.dir/Types.pb.cc.o ../../../protobuf_ep-install/lib/libprotobuf.a ../../../release/libgandiva.a ../../../release/libarrow.a ../../../protobuf_ep-install/lib/libprotobuf.a ../../../brotli_ep/src/brotli_ep-install/lib/libbrotlienc-static.a ../../../brotli_ep/src/brotli_ep-install/lib/libbrotlidec-static.a ../../../brotli_ep/src/brotli_ep-install/lib/libbrotlicommon-static.a ../../../bzip2_ep-install/lib/libbz2.a ../../../lz4_ep-pref ix/src/lz4_ep/lib/liblz4.a ../../../snappy_ep/src/snappy_ep-install/lib/libsnappy.a ../../../zstd_ep-install/lib64/libzstd.a ../../../orc_ep-install/lib/liborc.a ../../../jemalloc_ep-prefix/src/jemalloc_ep/dist//lib/libjemalloc_pic.a -pthread /usr/local/llvm/lib/libLLVMMCJIT.a /usr/local/llvm/lib/libLLVMExecutionEngine.a /usr/local/llvm/lib/libLLVMOrcTargetProcess.a /usr/local/llvm/lib/libLLVMOrcShared.a /usr/local/llvm/lib/libLLVMRuntimeDyld.a /usr/local/llvm/lib/libLLVMipo.a /usr/local/llvm/lib/libLLVMFrontendOpenMP.a /usr/local/llvm/lib/libLLVMIRReader.a /usr/local/llvm/lib/libLLVMAsmParser.a /usr/local/llvm/lib/libLLVMVectorize.a /usr/local/llvm/lib/libLLVMInstrumentation.a /usr/local/llvm/lib/libLLVMLinker.a /usr/local/llvm/lib/libLLVMAArch64CodeGen.a /usr/local/llvm/lib/libLLVMAsmPrinter.a /usr/local/llvm/lib/libLLVMDebugInfoMSF.a /usr/local/llvm/lib/libLLVMGlobalISel.a /usr/local/llvm/lib/libLLVMSelectionDAG.a /usr/local/llvm/lib/libLLVMCodeGen.a /usr/local/llvm/lib/libLLVMTa rget.a /usr/local/llvm/lib/libLLVMBitWriter.a /usr/local/llvm/lib/libLLVMScalarOpts.a /usr/local/llvm/lib/libLLVMAggressiveInstCombine.a /usr/local/llvm/lib/libLLVMInstCombine.a /usr/local/llvm/lib/libLLVMTransformUtils.a /usr/local/llvm/lib/libLLVMAnalysis.a /usr/local/llvm/lib/libLLVMProfileData.a /usr/local/llvm/lib/libLLVMDebugInfoDWARF.a /usr/local/llvm/lib/libLLVMObject.a /usr/local/llvm/lib/libLLVMBitReader.a /usr/local/llvm/lib/libLLVMTextAPI.a /usr/local/llvm/lib/libLLVMCFGuard.a /usr/local/llvm/lib/libLLVMCore.a /usr/local/llvm/lib/libLLVMRemarks.a /usr/local/llvm/lib/libLLVMBitstreamReader.a /usr/local/llvm/lib/libLLVMAArch64AsmParser.a /usr/local/llvm/lib/libLLVMMCParser.a /usr/local/llvm/lib/libLLVMAArch64Disassembler.a /usr/local/llvm/lib/libLLVMAArch64Desc.a /usr/local/llvm/lib/libLLVMMCDisassembler.a /usr/local/llvm/lib/libLLVMAArch64Info.a /usr/local/llvm/lib/libLLVMMC.a /usr/local/llvm/lib/libLLVMBinaryFormat.a /usr/local/llvm/lib/libLLVMDebugInfoCodeView.a /usr/lo cal/llvm/lib/libLLVMAArch64Utils.a /usr/local/llvm/lib/libLLVMSupport.a /usr/lib64/libz.so -lrt -ldl -lpthread -lm /usr/lib64/libtinfo.so /usr/local/llvm/lib/libLLVMDemangle.a /usr/lib64/libssl.so /usr/lib64/libcrypto.so ../../../re2_ep-install/lib/libre2.a ../../../utf8proc_ep-install/lib/libutf8proc.a__` Environment details: **OS:** CentOS v7.6 **Tools:** GCC 8.3.1, LLVM 14 By the way, this problem is also reproduced with Arrow 16.1. If I missed anything, please let me know. Thanks, NaiYan. ### Component(s) C++ - Gandiva -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@arrow.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org