Skip to content

[Issue]: [rocrtst] ld.lld: error: undefined symbol: hwloc_set_membind_nodeset #2460

@roberteg16

Description

@roberteg16

Problem Description

After PR #2095

When doing a fresh install of TheRock I stumbled with some linker errors when compiling the subproject rocmrtst.

Mentioned PR changes how the hwloc lib is found, where system one is preferred over the bundled one.

Bundled version of libhwloc is 1.x, whereas my system wide version is 2.10.0-1build1. System wide version deprecated some functions that some performance test of rocmrtsr depends on (*_nodeset functions).

In the README.md, it is explained that libhwloc-dev is required. I wonder if we should stop bundling old 1.X lib version and start using the API version of the suggested system package.

I managed to bypass it by manually modifying the path of the libhwloc library from <TheRock_Dir>/rocm-systems/projects/rocr-runtime/rocrtst/thirdparty/lib/libhwloc.so.5:

//Path to a library.
pkgcfg_lib_HWLOC_hwloc:FILEPATH=<TheRockPath>/rocm-systems/projects/rocr-runtime/rocrtst/thirdparty/lib/libhwloc.so.5

Operating System

Ubuntu 22.04

CPU

AMD EPYC 9684X 96-Core Processor

GPU

ROCm Version

ROCm main branch

ROCm Component

No response

Steps to Reproduce

No response

(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support

No response

Additional Information

Error message:

$ ninja -C build rocrtst 
ninja: Entering directory `build'
[0/2] Re-checking globbed directories...
[1/3] Building sub-project rocrtst (in background)
FAILED: [code=1] core/rocrtst/stamp/build.stamp /scratch/repos/TheRock/build/core/rocrtst/stamp/build.stamp 
cd /scratch/repos/TheRock/build/core/rocrtst/build && /scratch/repos/TheRock/.venv/bin/python3.12 /scratch/repos/TheRock/build_tools/teatime.py --log-timestamps --label rocrtst --interactive /scratch/repos/TheRock/build/logs/rocrtst_build.log -- /scratch/repos/TheRock/.venv/lib/python3.12/site-packages/cmake/data/bin/cmake -E env --unset=ROCM_PATH --unset=ROCM_DIR --unset=HIP_PATH --unset=HIP_DIR -- /scratch/repos/TheRock/.venv/lib/python3.12/site-packages/cmake/data/bin/cmake --build /scratch/repos/TheRock/build/core/rocrtst/build && /scratch/repos/TheRock/.venv/lib/python3.12/site-packages/cmake/data/bin/cmake -E touch /scratch/repos/TheRock/build/core/rocrtst/stamp/build.stamp
[rocrtst] [1/325] Linking CXX executable rocrtst64
[rocrtst] FAILED: [code=1] rocrtst64 
[rocrtst] : && /scratch/repos/TheRock/build/compiler/amd-llvm/dist/lib/llvm/bin/clang++ -Wno-documentation-unknown-command -Wno-documentation-pedantic -Wno-unused-command-line-argument -Wno-explicit-specialization-storage-class -fexceptions -fno-rtti -fno-math-errno -fno-threadsafe-statics -fmerge-all-constants -fms-extensions -Wall -Wno-unused -ggdb -O0 -g -L/scratch/repos/TheRock/build/base/rocprofiler-register/stage/lib -Wl,-rpath-link,/scratch/repos/TheRock/build/base/rocprofiler-register/stage/lib -L/scratch/repos/TheRock/build/third-party/sysdeps/linux/bzip2/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/scratch/repos/TheRock/build/third-party/sysdeps/linux/bzip2/build/stage/lib/rocm_sysdeps/lib -L/scratch/repos/TheRock/build/third-party/sysdeps/linux/liblzma/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/scratch/repos/TheRock/build/third-party/sysdeps/linux/liblzma/build/stage/lib/rocm_sysdeps/lib -L/scratch/repos/TheRock/build/third-party/sysdeps/linux/zlib/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/scratch/repos/TheRock/build/third-party/sysdeps/linux/zlib/build/stage/lib/rocm_sysdeps/lib -L/scratch/repos/TheRock/build/third-party/sysdeps/linux/zstd/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/scratch/repos/TheRock/build/third-party/sysdeps/linux/zstd/build/stage/lib/rocm_sysdeps/lib -L/scratch/repos/TheRock/build/third-party/sysdeps/linux/elfutils/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/scratch/repos/TheRock/build/third-party/sysdeps/linux/elfutils/build/stage/lib/rocm_sysdeps/lib -L/scratch/repos/TheRock/build/third-party/sysdeps/linux/libdrm/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/scratch/repos/TheRock/build/third-party/sysdeps/linux/libdrm/build/stage/lib/rocm_sysdeps/lib -L/scratch/repos/TheRock/build/third-party/sysdeps/linux/numactl/build/stage/lib/rocm_sysdeps/lib -Wl,-rpath-link,/scratch/repos/TheRock/build/third-party/sysdeps/linux/numactl/build/stage/lib/rocm_sysdeps/lib -L/scratch/repos/TheRock/build/compiler/amd-llvm/stage/lib/llvm/lib -Wl,-rpath-link,/scratch/repos/TheRock/build/compiler/amd-llvm/stage/lib/llvm/lib -L/scratch/repos/TheRock/build/core/ROCR-Runtime/stage/lib -Wl,-rpath-link,/scratch/repos/TheRock/build/core/ROCR-Runtime/stage/lib -L/scratch/repos/TheRock/build/compiler/amd-comgr/stage/lib -Wl,-rpath-link,/scratch/repos/TheRock/build/compiler/amd-comgr/stage/lib -L/scratch/repos/TheRock/build/compiler/amd-comgr-stub/stage/lib -Wl,-rpath-link,/scratch/repos/TheRock/build/compiler/amd-comgr-stub/stage/lib -L/scratch/repos/TheRock/build/core/opencl/icd/stage/lib -Wl,-rpath-link,/scratch/repos/TheRock/build/core/opencl/icd/stage/lib -L/scratch/repos/TheRock/build/core/ocl-clr/stage/lib -Wl,-rpath-link,/scratch/repos/TheRock/build/core/ocl-clr/stage/lib -L/scratch/repos/TheRock/build/core/ocl-clr/stage/lib/opencl -Wl,-rpath-link,/scratch/repos/TheRock/build/core/ocl-clr/stage/lib/opencl    -Wl,--enable-new-dtags  -Xlinker --dependency-file=CMakeFiles/rocrtst64.dir/link.d CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/performance/dispatch_time.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/performance/enqueueLatency.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/performance/memory_async_copy.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/performance/memory_async_copy_numa.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/performance/memory_async_copy_on_engine.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/agent_props.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/aql_barrier_bit.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/concurrent_init.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/concurrent_init_shutdown.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/concurrent_shutdown.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/cu_masking.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/deallocation_notifier.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/debug_basic.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/filter_devices.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/ipc.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/memory_access.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/memory_alignment.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/memory_allocation.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/memory_atomics.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/memory_basic.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/reference_count.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/signal_concurrent.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/signal_kernel.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/svm_memory.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/functional/virtual_memory.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/negative/memory_allocate_negative_tests.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/negative/queue_validation.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/stress/memory_concurrent_tests.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/stress/queue_write_index_concurrent_tests.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/common/base_rocr.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/common/base_rocr_utils.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/common/common.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/common/concurrent_utils.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/common/helper_funcs.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/common/hsatimer.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/common/os.cc.o CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/common/rocr.cc.o CMakeFiles/rocrtst64.dir/main.cc.o CMakeFiles/rocrtst64.dir/test_base.cc.o CMakeFiles/rocrtst64.dir/test_case_template.cc.o CMakeFiles/rocrtst64.dir/test_common.cc.o -o rocrtst64  -Wl,-rpath,"\$ORIGIN/../lib:\$ORIGIN/../lib/rocm_sysdeps/lib"  gtest/libgoogle-test-frwk64.a  /scratch/repos/TheRock/build/core/ROCR-Runtime/dist/lib/libhsa-runtime64.so.1.18.0  /scratch/repos/TheRock/build/base/amdsmi/dist/lib/libamd_smi.so.26.2.1  -lc  -lstdc++  -ldl  -lpthread  -lrt  /scratch/repos/TheRock/build/third-party/sysdeps/linux/numactl/build/dist/lib/rocm_sysdeps/lib/libnuma.so  /usr/lib/x86_64-linux-gnu/libhwloc.so && :
[rocrtst] ld.lld: error: undefined symbol: hwloc_set_membind_nodeset
[rocrtst] >>> referenced by memory_async_copy_numa.cc:127 (/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/performance/memory_async_copy_numa.cc:127)
[rocrtst] >>>               CMakeFiles/rocrtst64.dir/scratch/repos/TheRock/rocm-systems/projects/rocr-runtime/rocrtst/suites/performance/memory_async_copy_numa.cc.o:(MemoryAsyncCopyNUMA::Run())
[rocrtst] clang++: error: linker command failed with exit code 1 (use -v to see invocation)
[rocrtst] [2/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1100/test_case_template_kernels.hsaco
[rocrtst] [3/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1036/vector_add_debug_trap_kernels.hsaco
[rocrtst] [4/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1036/vector_copy_kernels.hsaco
[rocrtst] [5/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1100/gpuReadWrite_kernels.hsaco
[rocrtst] [6/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1100/vector_copy_kernels.hsaco
[rocrtst] [7/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1100/dispatch_time_kernels.hsaco
[rocrtst] [8/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1100/vector_add_debug_trap_kernels.hsaco
[rocrtst] [9/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1036/vector_add_memory_fault_kernels.hsaco
[rocrtst] [10/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1101/cu_mask_kernels.hsaco
[rocrtst] [11/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1100/groupMemoryDynamic_kernels.hsaco
[rocrtst] [12/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1100/signal_operations_kernels.hsaco
[rocrtst] [13/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1100/atomicOperations_kernels.hsaco
[rocrtst] [14/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1100/vector_add_memory_fault_kernels.hsaco
[rocrtst] [15/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1036/test_case_template_kernels.hsaco
[rocrtst] [16/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1101/atomicOperations_kernels.hsaco
[rocrtst] [17/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1101/dispatch_time_kernels.hsaco
[rocrtst] [18/325] BUILDING /scratch/repos/TheRock/build/core/rocrtst/build/gfx1100/cu_mask_kernels.hsaco
[rocrtst] ninja: build stopped: subcommand failed.
[rocrtst FAILED WITH CODE 1 in 0 seconds]
ninja: build stopped: subcommand failed.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions