Hi, I was using DynamoRIO 8.0.1 for a couple of years with no issues. On a somewhat old system where libc version was 2.33.
I am now forced to move to a new system, libc version is 2.37, and I am trying to work with the latest DynamoRIO 11.3.0. I don't know if the libc is causing my issues, but I am mentioning it just in case. My understanding after looking at
this is that the issues are (at least for now) fixed, and even used with drmemory.
I am getting an obscure `<ERROR: using undefined symbol!>` message at the initialization of my client, before anything runs. Using gdb doesn't help, as it doesn't pause at the error, just exits right away.
I did get the following by using `-debug -loglevel 4`, It seems fine thought the addresses for all DR extensions look different from what I am used to:
<Paste into GDB to debug DynamoRIO clients:
set confirm off
add-symbol-file '/lustre06/project/6005345/mewais/DCSim/Debug/libDCSClient.so' 0x000000007269ec80
add-symbol-file '/lustre06/project/6005345/mewais/DynamoRIO-Linux-11.3.0-1/lib64/debug/libdynamorio.so' 0x00001555550f1000
add-symbol-file '/lustre06/project/6005345/mewais/DynamoRIO-Linux-11.3.0-1/ext/lib64/debug/libdrwrap.so' 0x00000000740037d0
add-symbol-file '/lustre06/project/6005345/mewais/DynamoRIO-Linux-11.3.0-1/ext/lib64/debug/libdrmgr.so' 0x0000000073004cb0
add-symbol-file '/lustre06/project/6005345/mewais/DynamoRIO-Linux-11.3.0-1/ext/lib64/debug/libdrutil.so' 0x00000000750026b0
add-symbol-file '/lustre06/project/6005345/mewais/DynamoRIO-Linux-11.3.0-1/ext/lib64/debug/libdrx.so' 0x00000000770054d0
add-symbol-file '/lustre06/project/6005345/mewais/DynamoRIO-Linux-11.3.0-1/ext/lib64/debug/libdrreg.so' 0x0000000078003df0
add-symbol-file '/lustre06/project/6005345/mewais/DynamoRIO-Linux-11.3.0-1/ext/lib64/debug/libdrsyms.so' 0x0000000076007d60
add-symbol-file '/usr/lib64/libz.so.1' 0x0000155354d4c740
add-symbol-file '/usr/lib64/libc.so.6' 0x0000155354781c40
add-symbol-file '/usr/lib64/ld-linux-x86-64.so.2' 0x000015535452e080
add-symbol-file '/usr/lib64/libpthread.so.0' 0x0000155354312840
add-symbol-file '/usr/lib64/libstdc++.so.6' 0x0000155354005b90
add-symbol-file '/usr/lib64/libm.so.6' 0x0000155353bff520
add-symbol-file '/usr/lib64/libgcc_s.so.1' 0x00001553539dce00
>
<ERROR: using undefined symbol!>
[Inferior 1 (process 400016) exited with code 0377]I am very sure that I have the correct flags in my CMake (after all, it was working fine before, and I haven't changed it):
target_compile_definitions(DCSClient PUBLIC DCSCLIENT)
target_include_directories(DCSClient PUBLIC Headers)
target_include_directories(DCSClient PUBLIC Third)
target_include_directories(DCSClient PUBLIC .)
target_include_directories(DCSClient PUBLIC ${EXTERNAL_INSTALL_LOCATION}/include)
target_include_directories(DCSClient PUBLIC SYSTEM ${MPI_INCLUDE_PATH})
target_link_directories(DCSClient PUBLIC ${EXTERNAL_INSTALL_LOCATION}/lib)
target_link_directories(DCSClient PUBLIC ${EXTERNAL_INSTALL_LOCATION}/lib64)
target_link_libraries(DCSClient libdocopt.a)
target_link_libraries(DCSClient libconfig++.a)
target_link_libraries(DCSClient libyaml-cpp.a)
target_link_libraries(DCSClient libxed.a)
configure_DynamoRIO_client(DCSClient)
use_DynamoRIO_extension(DCSClient drwrap)
use_DynamoRIO_extension(DCSClient drmgr)
use_DynamoRIO_extension(DCSClient drutil)
use_DynamoRIO_extension(DCSClient drx)
use_DynamoRIO_extension(DCSClient drreg)
use_DynamoRIO_extension(DCSClient drsyms)The log file isn't much help either, the file ends with a bunch of allocations, followed by the sudden error, no extra info:
Variable-size block: allocating 0x000015535506dd70 (736 bytes [736 aligned] in 784 block)
Variable-size block: allocating 0x000015535506e0b8 (690 bytes [696 aligned] in 1552 block)
Variable-size block: allocating 0x000015535506dd70 (736 bytes [736 aligned] in 784 block)
Variable-size block: allocating 0x000015535506e700 (520 bytes [520 aligned] in 3088 block)
Variable-size block: allocating 0x000015535506dd70 (784 bytes [784 aligned] in 784 block)
SYSLOG_CRITICAL: ERROR: using undefined symbol!Any guidance would be appreciated.