-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Description
The compilation of hotspot
1.5.1 fails with
FAILED: libexec/hotspot-perfparser bin/perfparser /dev/shm/portage/dev-util/hotspot-1.5.1/work/hotspot_build/bin/perfparser
: && /usr/bin/x86_64-pc-linux-gnu-g++ -O2 -march=native -pipe -Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs 3rdparty/CMakeFiles/hotspot-perfparser.dir/hotspot-perfparser_autogen/mocs_compilation.cpp.o 3rdparty/CMakeFiles/hotspot-perfparser.dir/perfparser/app/main.cpp.o -o libexec/hotspot-perfparser 3rdparty/liblibhotspot-perfparser.a /usr/lib64/libQt6Network.so.6.8.1 /usr/lib64/libQt6Core.so.6.8.1 /usr/lib64/libdw.so /usr/lib64/libelf.so /usr/lib64/libzstd.so && cd /dev/shm/portage/dev-util/hotspot-1.5.1/work/hotspot_build/3rdparty && /usr/bin/cmake -E create_symlink /dev/shm/portage/dev-util/hotspot-1.5.1/work/hotspot_build/libexec/hotspot-perfparser /dev/shm/portage/dev-util/hotspot-1.5.1/work/hotspot_build/bin/perfparser
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: 3rdparty/liblibhotspot-perfparser.a(perfsymboltable.cpp.o): in function `PerfSymbolTable::PerfSymbolTable(int, Dwfl_Callbacks*, PerfUnwind*)::{lambda(debuginfod_client*, long, long)#1}::_FUN(debuginfod_client*, long, long)':
perfsymboltable.cpp:(.text+0x12f8): undefined reference to `debuginfod_get_user_data'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: perfsymboltable.cpp:(.text+0x130a): undefined reference to `debuginfod_get_url'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: 3rdparty/liblibhotspot-perfparser.a(perfsymboltable.cpp.o): in function `PerfSymbolTable::PerfSymbolTable(int, Dwfl_Callbacks*, PerfUnwind*)':
perfsymboltable.cpp:(.text+0x51df): undefined reference to `debuginfod_set_user_data'
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: perfsymboltable.cpp:(.text+0x51ee): undefined reference to `debuginfod_set_progressfn'
collect2: error: ld returned 1 exit status
The two symbols are exported in libdebuginfod.so
, but this library is not provided to the linker. Also, neither libdw
nor libelf
link to it on my build.
At the start of the compilation, I noticed the following:
* SED: the following did not cause any changes
* sed -i '/target_compile_definitions(libhotspot-perfparser PRIVATE HAVE_DWFL_GET_DEBUGINFOD_CLIENT=1)/d' 3rdparty/perfparser.cmake || die "sed failed for perfparser";
* no-op: -e /target_compile_definitions(libhotspot-perfparser PRIVATE HAVE_DWFL_GET_DEBUGINFOD_CLIENT=1)/d
* Source directory (CMAKE_USE_DIR): "/dev/shm/portage/dev-util/hotspot-1.5.1/work/hotspot"
* Build directory (BUILD_DIR): "/dev/shm/portage/dev-util/hotspot-1.5.1/work/hotspot_build"
* Hardcoded definition(s) removed in tests/test-clients/CMakeLists.txt:
* set(CMAKE_BUILD_TYPE RelWithDebInfo)
>>> Source prepared.
>>> Configuring source in /dev/shm/portage/dev-util/hotspot-1.5.1/work/hotspot ...
* Source directory (CMAKE_USE_DIR): "/dev/shm/portage/dev-util/hotspot-1.5.1/work/hotspot"
* Build directory (BUILD_DIR): "/dev/shm/portage/dev-util/hotspot-1.5.1/work/hotspot_build"
and one can see that HAVE_DWFL_GET_DEBUGINFOD_CLIENT
is set to 1
.
$ rg HAVE_DWFL_GET_DEBUGINFOD_CLIENT hotspot_build/
hotspot_build/CMakeFiles/CMakeConfigureLog.yaml
797: variable: "HAVE_DWFL_GET_DEBUGINFOD_CLIENT_SYMBOL"
hotspot_build/3rdparty/perfparser/app/config-perfparser.h
21:#define HAVE_DWFL_GET_DEBUGINFOD_CLIENT 1
hotspot_build/CMakeCache.txt
1476:HAVE_DWFL_GET_DEBUGINFOD_CLIENT_SYMBOL:INTERNAL=1
Version Info (please complete the following information):
- Linux Kernel version: 6.13.2
- perf version: 6.13.1
- hotspot version (appimage? selfcompiled?): 1.5.1
- if self-compiled hotspot, what version of elfutils: 0.192
Metadata
Metadata
Assignees
Labels
No labels