ROCm / ROCm-OpenCL-Runtime

ROCm OpenOpenCL Runtime
166 stars 60 forks source link

opencl-runtime compile on arm64 #105

Open 0hanghang opened 4 years ago

0hanghang commented 4 years ago

hi there! I've been compile rocm-opencl-runtime on arm64 platform ,following the README instruction procedure,but when make ,I got : ^~~~~~~ /home/ubuntu/opencl/rocm/opencl/runtime/platform/kernel.hpp:73:39: note: ‘const amd::KernelParameterDescriptor& amd::KernelSignature::at’ should be initialized const KernelParameterDescriptor& at(size_t index) const { ^~ /home/ubuntu/opencl/rocm/opencl/runtime/platform/kernel.hpp: At global scope: /home/ubuntu/opencl/rocm/opencl/runtime/platform/kernel.hpp:179:14: error: ‘size_t’ has not been declared void reset(size_t index) { ^~ /home/ubuntu/opencl/rocm/opencl/runtime/platform/kernel.hpp:185:12: error: ‘size_t’ has not been declared void set(size_t index, size_t size, const void value, bool svmBound = false); ^~ /home/ubuntu/opencl/rocm/opencl/runtime/platform/kernel.hpp:185:26: error: ‘size_t’ has not been declared void set(size_t index, size_t size, const void value, bool svmBound = false); ^~ /home/ubuntu/opencl/rocm/opencl/runtime/platform/kernel.hpp:188:13: error: ‘size_t’ has not been declared bool test(sizet index) const { return signature.at(index).info.defined; } ^~ /home/ubuntu/opencl/rocm/opencl/runtime/platform/kernel.hpp:194:3: error: ‘size_t’ does not name a type; did you mean ‘ssize_t’? size_t localMemSize(size_t minDataTypeAlignment) const; ^~ many "size_t has not been declared "error! any help ? thanks in advance!

0hanghang commented 4 years ago

I install llvm by compiling source code with git clone --recursive -b clang_tot_upgrade https://github.com/RadeonOpenCompute/hcc.git is there any incompatible issue here ?

0hanghang commented 4 years ago
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_INCLUDES=/opt/rocm/llvm/lib/clang/11.0.0/include/ -DCMAKE_PREFIX_PATH=/home/ubuntu/opencl/rocm/ROCm-CompilerSupport/lib/comgr/build/lib/cmake/amd_comgr/ -DUSE_COMGR_LIBRARY=yes ..
baryluk commented 4 years ago

It looks the kernel.hpp was/is relaying on some implicit include that includes stdlib.h or stddef.h to define size_t.

It does include cstdlib, but that one provides it as std::size_t, not size_t (C style) itself.

So that should be fixed in kernel.hpp and other files audited for the same issue.