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

Reply via email to