xmr-stak-amd icon indicating copy to clipboard operation
xmr-stak-amd copied to clipboard

WARNING: Target "xmr-stak-amd-c" requests linking to directory "/opt/rocm/opencl/lib/x86_64". Targets may link only to libraries. CMake is dropping the item.

Open minzak opened this issue 5 years ago • 1 comments

Debian 9, kernel 4.19.x, AMD -ROCm 2.0.1 System is worked: clinfo.txt rocm_smi.txt rocminfo.txt

root@z820:/usr/src/xmr-stak-amd/build#
./do.sh
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/local/bin/gcc-8
-- Check for working C compiler: /usr/local/bin/gcc-8 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/local/bin/g++-8
-- Check for working CXX compiler: /usr/local/bin/g++-8 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for CL_VERSION_2_2
-- Looking for CL_VERSION_2_2 - not found
-- Looking for CL_VERSION_2_1
-- Looking for CL_VERSION_2_1 - not found
-- Looking for CL_VERSION_2_0
-- Looking for CL_VERSION_2_0 - found
-- Found OpenCL: /opt/rocm/opencl/lib/x86_64 (found version "2.0")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.1.0j")
-- Configuring done
WARNING: Target "xmr-stak-amd-c" requests linking to directory "/opt/rocm/opencl/lib/x86_64".  Targets may link only to libraries.  CMake is dropping the item.
WARNING: Target "xmr-stak-amd" requests linking to directory "/opt/rocm/opencl/lib/x86_64".  Targets may link only to libraries.  CMake is dropping the item.
WARNING: Target "xmr-stak-amd" requests linking to directory "/opt/rocm/opencl/lib/x86_64".  Targets may link only to libraries.  CMake is dropping the item.
-- Generating done
-- Build files have been written to: /usr/src/xmr-stak-amd/build

root@z820:/usr/src/xmr-stak-amd/build# make -j32
Scanning dependencies of target xmr-stak-amd-c
[ 10%] Building C object CMakeFiles/xmr-stak-amd-c.dir/crypto/c_blake256.c.o
[ 26%] Building C object CMakeFiles/xmr-stak-amd-c.dir/amd_gpu/gpu.c.o
[ 26%] Building C object CMakeFiles/xmr-stak-amd-c.dir/crypto/c_groestl.c.o
[ 10%] Building C object CMakeFiles/xmr-stak-amd-c.dir/crypto/c_jh.c.o
[ 26%] Building C object CMakeFiles/xmr-stak-amd-c.dir/crypto/c_keccak.c.o
[ 31%] Building C object CMakeFiles/xmr-stak-amd-c.dir/crypto/c_skein.c.o
[ 36%] Building C object CMakeFiles/xmr-stak-amd-c.dir/crypto/soft_aes.c.o
[ 42%] Linking C static library libxmr-stak-amd-c.a
[ 42%] Built target xmr-stak-amd-c
Scanning dependencies of target xmr-stak-amd
[ 57%] Building CXX object CMakeFiles/xmr-stak-amd.dir/crypto/cryptonight_common.cpp.o
[ 57%] Building CXX object CMakeFiles/xmr-stak-amd.dir/httpd.cpp.o
[ 57%] Building CXX object CMakeFiles/xmr-stak-amd.dir/console.cpp.o
[ 63%] Building CXX object CMakeFiles/xmr-stak-amd.dir/jconf.cpp.o
[ 68%] Building CXX object CMakeFiles/xmr-stak-amd.dir/executor.cpp.o
[ 73%] Building CXX object CMakeFiles/xmr-stak-amd.dir/webdesign.cpp.o
[ 84%] Building CXX object CMakeFiles/xmr-stak-amd.dir/minethd.cpp.o
[ 84%] Building CXX object CMakeFiles/xmr-stak-amd.dir/jpsock.cpp.o
[ 89%] Building CXX object CMakeFiles/xmr-stak-amd.dir/cli-miner.cpp.o
[ 94%] Building CXX object CMakeFiles/xmr-stak-amd.dir/socket.cpp.o
[100%] Linking CXX executable bin/xmr-stak-amd
libxmr-stak-amd-c.a(gpu.c.o): In function `InitOpenCLGpu':
gpu.c:(.text+0x10d): undefined reference to `clGetDeviceInfo'
gpu.c:(.text+0x159): undefined reference to `clCreateCommandQueueWithProperties'
gpu.c:(.text+0x182): undefined reference to `clCreateBuffer'
gpu.c:(.text+0x1b1): undefined reference to `clCreateBuffer'
gpu.c:(.text+0x1e1): undefined reference to `clCreateBuffer'
gpu.c:(.text+0x210): undefined reference to `clCreateBuffer'
gpu.c:(.text+0x237): undefined reference to `clCreateBuffer'
libxmr-stak-amd-c.a(gpu.c.o):gpu.c:(.text+0x25e): more undefined references to `clCreateBuffer' follow
libxmr-stak-amd-c.a(gpu.c.o): In function `InitOpenCLGpu':
gpu.c:(.text+0x2d7): undefined reference to `clCreateProgramWithSource'
gpu.c:(.text+0x31e): undefined reference to `clBuildProgram'
gpu.c:(.text+0x360): undefined reference to `clGetProgramBuildInfo'
gpu.c:(.text+0x60a): undefined reference to `clGetProgramBuildInfo'
gpu.c:(.text+0x6b2): undefined reference to `clCreateKernel'
gpu.c:(.text+0x70f): undefined reference to `clGetProgramBuildInfo'
libxmr-stak-amd-c.a(gpu.c.o): In function `InitOpenCL':
gpu.c:(.text+0x7c3): undefined reference to `clGetPlatformIDs'
gpu.c:(.text+0x7fd): undefined reference to `clGetPlatformIDs'
gpu.c:(.text+0x821): undefined reference to `clGetDeviceIDs'
gpu.c:(.text+0x8a5): undefined reference to `clGetDeviceIDs'
gpu.c:(.text+0x909): undefined reference to `clCreateContext'
gpu.c:(.text+0xaeb): undefined reference to `clGetDeviceIDs'
libxmr-stak-amd-c.a(gpu.c.o): In function `XMRSetJob':
gpu.c:(.text+0xbd8): undefined reference to `clEnqueueWriteBuffer'
gpu.c:(.text+0xbf8): undefined reference to `clSetKernelArg'
gpu.c:(.text+0xc1a): undefined reference to `clSetKernelArg'
gpu.c:(.text+0xc3c): undefined reference to `clSetKernelArg'
gpu.c:(.text+0xc57): undefined reference to `clSetKernelArg'
gpu.c:(.text+0xc75): undefined reference to `clSetKernelArg'
libxmr-stak-amd-c.a(gpu.c.o):gpu.c:(.text+0xc93): more undefined references to `clSetKernelArg' follow
libxmr-stak-amd-c.a(gpu.c.o): In function `XMRRunJob':
gpu.c:(.text+0x1182): undefined reference to `clEnqueueWriteBuffer'
gpu.c:(.text+0x11cd): undefined reference to `clEnqueueWriteBuffer'
gpu.c:(.text+0x11e2): undefined reference to `clFinish'
gpu.c:(.text+0x1248): undefined reference to `clEnqueueNDRangeKernel'
gpu.c:(.text+0x1284): undefined reference to `clEnqueueNDRangeKernel'
gpu.c:(.text+0x12be): undefined reference to `clEnqueueNDRangeKernel'
gpu.c:(.text+0x12fb): undefined reference to `clEnqueueReadBuffer'
gpu.c:(.text+0x1338): undefined reference to `clEnqueueReadBuffer'
gpu.c:(.text+0x1378): undefined reference to `clEnqueueReadBuffer'
gpu.c:(.text+0x13b8): undefined reference to `clEnqueueReadBuffer'
gpu.c:(.text+0x13cd): undefined reference to `clFinish'
gpu.c:(.text+0x1424): undefined reference to `clEnqueueReadBuffer'
gpu.c:(.text+0x1435): undefined reference to `clFinish'
gpu.c:(.text+0x1582): undefined reference to `clSetKernelArg'
gpu.c:(.text+0x1655): undefined reference to `clEnqueueNDRangeKernel'
gpu.c:(.text+0x16ac): undefined reference to `clSetKernelArg'
gpu.c:(.text+0x1782): undefined reference to `clEnqueueNDRangeKernel'
gpu.c:(.text+0x17b7): undefined reference to `clSetKernelArg'
gpu.c:(.text+0x188a): undefined reference to `clEnqueueNDRangeKernel'
gpu.c:(.text+0x18bf): undefined reference to `clSetKernelArg'
gpu.c:(.text+0x199a): undefined reference to `clEnqueueNDRangeKernel'
collect2: error: ld returned 1 exit status
CMakeFiles/xmr-stak-amd.dir/build.make:222: recipe for target 'bin/xmr-stak-amd' failed
make[2]: *** [bin/xmr-stak-amd] Error 1
CMakeFiles/Makefile2:109: recipe for target 'CMakeFiles/xmr-stak-amd.dir/all' failed
make[1]: *** [CMakeFiles/xmr-stak-amd.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
root@z820:/usr/src/xmr-stak-amd/build#

I can use gcc 6.3 and gcc 8.3 (it is not matter)

cmake -DCMAKE_C_COMPILER=/usr/local/bin/gcc-8 -DCMAKE_CXX_COMPILER=/usr/local/bin/g++-8 -DCMAKE_LINK_STATIC=OFF -DCMAKE_BUILD_TYPE=Release -DMICROHTTPD_ENABLE=ON -DOpenSSL_ENABLE=ON \
-DOpenCL_INCLUDE_DIR=/opt/rocm/opencl/include -DOpenCL_LIBRARY=/opt/rocm/opencl/lib/x86_64 ..

Also this full tree of ROCm:

root@z820:/opt/rocm# tree
.
├── atmi
│   ├── include
│   │   ├── atmi.h
│   │   └── atmi_runtime.h
│   └── lib
│       └── libatmi_runtime.so
├── bin
│   ├── clang-ocl
│   ├── rocm_agent_enumerator
│   ├── rocminfo
│   ├── rocm-smi -> rocm_smi.py
│   └── rocm_smi.py
├── hsa
│   ├── include
│   │   └── hsa
│   │       ├── amd_hsa_common.h
│   │       ├── amd_hsa_elf.h
│   │       ├── amd_hsa_kernel_code.h
│   │       ├── amd_hsa_queue.h
│   │       ├── amd_hsa_signal.h
│   │       ├── amd_hsa_tools_interfaces.h
│   │       ├── Brig.h
│   │       ├── hsa_api_trace.h
│   │       ├── hsa_ext_amd.h
│   │       ├── hsa_ext_debugger.h
│   │       ├── hsa_ext_finalize.h
│   │       ├── hsa_ext_image.h
│   │       ├── hsa_ext_profiler.h
│   │       ├── hsa.h
│   │       ├── hsa_ven_amd_aqlprofile.h
│   │       └── hsa_ven_amd_loader.h
│   ├── lib
│   │   ├── libhsa-ext-image64.so.1 -> libhsa-ext-image64.so.1.1.9
│   │   ├── libhsa-ext-image64.so.1.1.9
│   │   ├── libhsa-runtime64.so.1 -> libhsa-runtime64.so.1.1.9
│   │   ├── libhsa-runtime64.so.1.1.9
│   │   ├── libhsa-runtime-tools64.so.1 -> libhsa-runtime-tools64.so.1.1.9
│   │   └── libhsa-runtime-tools64.so.1.1.9
│   ├── LICENSE.txt
│   └── README.md
├── include
│   ├── amd_comgr.h
│   ├── amd_hsa_common.h
│   ├── amd_hsa_elf.h
│   ├── amd_hsa_kernel_code.h
│   ├── amd_hsa_queue.h
│   ├── amd_hsa_signal.h
│   ├── as.h
│   ├── device_amd_hsa.h
│   ├── hsa -> ../hsa/include/hsa
│   ├── hsa.h
│   ├── hsakmt.h
│   ├── hsakmttypes.h
│   ├── linux
│   │   └── kfd_ioctl.h
│   ├── ockl.h
│   ├── ockl_hsa.h
│   ├── ocml.h
│   ├── opencl1.2-c.pch
│   └── opencl2.0-c.pch
├── lib
│   ├── cmake
│   │   ├── amd_comgr
│   │   │   ├── amd_comgr-config.cmake
│   │   │   ├── amd_comgr-targets.cmake
│   │   │   └── amd_comgr-targets-release.cmake
│   │   └── AMDDeviceLibs
│   │       └── AMDDeviceLibsConfig.cmake
│   ├── hc.amdgcn.bc
│   ├── hip.amdgcn.bc
│   ├── libamd_comgr.so
│   ├── libhsakmt.so -> libhsakmt.so.1
│   ├── libhsakmt.so.1 -> libhsakmt.so.1.0.9
│   ├── libhsakmt.so.1.0.9
│   ├── libhsa-runtime64.so -> ../hsa/lib/libhsa-runtime64.so.1
│   ├── ockl.amdgcn.bc
│   ├── oclc_correctly_rounded_sqrt_off.amdgcn.bc
│   ├── oclc_correctly_rounded_sqrt_on.amdgcn.bc
│   ├── oclc_daz_opt_off.amdgcn.bc
│   ├── oclc_daz_opt_on.amdgcn.bc
│   ├── oclc_finite_only_off.amdgcn.bc
│   ├── oclc_finite_only_on.amdgcn.bc
│   ├── oclc_isa_version_700.amdgcn.bc
│   ├── oclc_isa_version_701.amdgcn.bc
│   ├── oclc_isa_version_702.amdgcn.bc
│   ├── oclc_isa_version_801.amdgcn.bc
│   ├── oclc_isa_version_802.amdgcn.bc
│   ├── oclc_isa_version_803.amdgcn.bc
│   ├── oclc_isa_version_810.amdgcn.bc
│   ├── oclc_isa_version_900.amdgcn.bc
│   ├── oclc_isa_version_902.amdgcn.bc
│   ├── oclc_isa_version_904.amdgcn.bc
│   ├── oclc_isa_version_906.amdgcn.bc
│   ├── oclc_unsafe_math_off.amdgcn.bc
│   ├── oclc_unsafe_math_on.amdgcn.bc
│   ├── ocml.amdgcn.bc
│   └── opencl.amdgcn.bc
├── libhsakmt
│   ├── libhsakmt.pc
│   └── LICENSE.md
├── opencl
│   ├── bin
│   │   └── x86_64
│   │       ├── clang
│   │       ├── clinfo
│   │       ├── ld.lld
│   │       ├── llc
│   │       ├── llvm-link
│   │       ├── llvm-objdump
│   │       └── opt
│   ├── include
│   │   ├── CL
│   │   │   ├── cl_ext.h
│   │   │   ├── cl_gl_ext.h
│   │   │   ├── cl_gl.h
│   │   │   ├── cl.h
│   │   │   ├── cl.hpp
│   │   │   ├── cl_platform.h
│   │   │   └── opencl.h
│   │   └── opencl-c.h
│   └── lib
│       └── x86_64
│           ├── bitcode
│           │   ├── hip.amdgcn.bc
│           │   ├── irif.amdgcn.bc
│           │   ├── ockl.amdgcn.bc
│           │   ├── oclc_correctly_rounded_sqrt_off.amdgcn.bc
│           │   ├── oclc_correctly_rounded_sqrt_on.amdgcn.bc
│           │   ├── oclc_daz_opt_off.amdgcn.bc
│           │   ├── oclc_daz_opt_on.amdgcn.bc
│           │   ├── oclc_finite_only_off.amdgcn.bc
│           │   ├── oclc_finite_only_on.amdgcn.bc
│           │   ├── oclc_isa_version_700.amdgcn.bc
│           │   ├── oclc_isa_version_701.amdgcn.bc
│           │   ├── oclc_isa_version_702.amdgcn.bc
│           │   ├── oclc_isa_version_801.amdgcn.bc
│           │   ├── oclc_isa_version_802.amdgcn.bc
│           │   ├── oclc_isa_version_803.amdgcn.bc
│           │   ├── oclc_isa_version_810.amdgcn.bc
│           │   ├── oclc_isa_version_900.amdgcn.bc
│           │   ├── oclc_isa_version_902.amdgcn.bc
│           │   ├── oclc_isa_version_904.amdgcn.bc
│           │   ├── oclc_isa_version_906.amdgcn.bc
│           │   ├── oclc_unsafe_math_off.amdgcn.bc
│           │   ├── oclc_unsafe_math_on.amdgcn.bc
│           │   ├── ocml.amdgcn.bc
│           │   └── opencl.amdgcn.bc
│           ├── libamdocl64.so
│           ├── libcltrace.so
│           ├── libOpenCL.so -> libOpenCL.so.1
│           └── libOpenCL.so.1
└── share
    ├── amd_comgr
    │   ├── LICENSE.txt
    │   ├── NOTICES.txt
    │   └── README.md
    └── rocm
        └── cmake
            ├── ROCMAnalyzers.cmake
            ├── ROCMClangTidy.cmake
            ├── ROCMConfig.cmake
            ├── ROCMCppCheck.cmake
            ├── ROCMCreatePackage.cmake
            ├── ROCMInstallSymlinks.cmake
            ├── ROCMInstallTargets.cmake
            ├── ROCMPackageConfigHelpers.cmake
            └── ROCMSetupVersion.cmake

28 directories, 139 files

root@z820:/opt/rocm#

What is wrong ?

minzak avatar Mar 25 '19 00:03 minzak

prepend the ld_library_path with the path to the rocm opencl libs. it looks like you have an additional version of opencl on the system and the wrong version is picked

psychocrypt avatar Mar 25 '19 17:03 psychocrypt