Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
I test kudu on aarch64 server based on https://gerrit.cloudera.org/#/c/14964/ , the test client_symbol-test failed, error info as below:
Found nm: /usr/bin/nm
Found kudu client library: ./../lib/exported/libkudu_client.so
Found bad symbol '_ULaarch64_dwarf_find_debug_frame'
Found bad symbol '_ULaarch64_dwarf_search_unwind_table'
Found bad symbol '_ULaarch64_get_reg'
Found bad symbol '_ULaarch64_init_local'
Found bad symbol '_ULaarch64_init_local2'
Found bad symbol '_ULaarch64_is_signal_frame'
Found bad symbol '_ULaarch64_resume'
Found bad symbol '_ULaarch64_step'
Found bad symbol '_Uaarch64_flush_cache'
Found bad symbol '_Uaarch64_get_accessors'
Found bad symbol '_Uaarch64_get_elf_image'
Found bad symbol '_Uaarch64_get_exe_image_path'
Found bad symbol '_Uaarch64_is_fpreg'
......
Kudu client library contains 13 bad symbols
I executed `nm` manually on x86 then, and found that the symbols of libunwind code above are different with aarch64, like:
on aarch64:
00000000004d8fb8 T _ULaarch64_get_reg /opt/kudu/thirdparty/src/libunwind-1.3.1/src/mi/Gget_reg.c:29
on x86_64:
00000000004c60e0 t _ULx86_64_get_reg /opt/kudu/thirdparty/src/libunwind-1.3.1/src/mi/Gget_reg.c:29
I am not familar with this scope and don't know why the symbol type is different between x86_64 and aarch64, maybe the logic of client_symbol-test.sh should be modified for aarch64 to avoid bad symbols?