I can't get any recent version of ccminer to compile on OSX. I have previously successfully compiled 1.7.6-r10-nanashi, but multiple attempts at compiling several versions of v2.2.4 (windows source, linux source, windows release source) and someone else's fork of v2.2 have all failed with the following errors:
equi/cuda_equi.cu(2040): error: no instance of constructor "rt_error::rt_error" matches the argument list
argument types are: (char [512])
detected during instantiation of "void eq_cuda_context::solve(const char *, unsigned int, const char *, unsigned int, fn_cancel, fn_solution, fn_hashdone) [with RB=9U, SM=1248U, SSM=12U, THREADS=640U, PACKER=packer_cantor]"
(2124): here
equi/cuda_equi.cu(2042): error: no instance of constructor "rt_error::rt_error" matches the argument list
argument types are: (char [512])
detected during instantiation of "void eq_cuda_context::solve(const char *, unsigned int, const char *, unsigned int, fn_cancel, fn_solution, fn_hashdone) [with RB=9U, SM=1248U, SSM=12U, THREADS=640U, PACKER=packer_cantor]"
(2124): here
equi/cuda_equi.cu(2061): error: no instance of constructor "rt_error::rt_error" matches the argument list
argument types are: (char [512])
detected during instantiation of "void eq_cuda_context::solve(const char *, unsigned int, const char *, unsigned int, fn_cancel, fn_solution, fn_hashdone) [with RB=9U, SM=1248U, SSM=12U, THREADS=640U, PACKER=packer_cantor]"
(2124): here
equi/cuda_equi.cu(1966): error: no instance of constructor "rt_error::rt_error" matches the argument list
argument types are: (char [512])
detected during instantiation of "eq_cuda_context::eq_cuda_context(int, int) [with RB=9U, SM=1248U, SSM=12U, THREADS=640U, PACKER=packer_cantor]"
(2124): here
equi/cuda_equi.cu(1967): error: no instance of constructor "rt_error::rt_error" matches the argument list
argument types are: (char [512])
detected during instantiation of "eq_cuda_context::eq_cuda_context(int, int) [with RB=9U, SM=1248U, SSM=12U, THREADS=640U, PACKER=packer_cantor]"
(2124): here
equi/cuda_equi.cu(1968): error: no instance of constructor "rt_error::rt_error" matches the argument list
argument types are: (char [512])
detected during instantiation of "eq_cuda_context::eq_cuda_context(int, int) [with RB=9U, SM=1248U, SSM=12U, THREADS=640U, PACKER=packer_cantor]"
(2124): here
equi/cuda_equi.cu(2001): error: no instance of constructor "rt_error::rt_error" matches the argument list
argument types are: (char [512])
detected during instantiation of "eq_cuda_context::eq_cuda_context(int, int) [with RB=9U, SM=1248U, SSM=12U, THREADS=640U, PACKER=packer_cantor]"
(2124): here
equi/cuda_equi.cu(2002): error: no instance of constructor "rt_error::rt_error" matches the argument list
argument types are: (char [512])
detected during instantiation of "eq_cuda_context::eq_cuda_context(int, int) [with RB=9U, SM=1248U, SSM=12U, THREADS=640U, PACKER=packer_cantor]"
(2124): here
equi/cuda_equi.cu(2003): error: no instance of constructor "rt_error::rt_error" matches the argument list
argument types are: (char [512])
detected during instantiation of "eq_cuda_context::eq_cuda_context(int, int) [with RB=9U, SM=1248U, SSM=12U, THREADS=640U, PACKER=packer_cantor]"
(2124): here
equi/cuda_equi.cu(2108): error: no instance of constructor "rt_error::rt_error" matches the argument list
argument types are: (char [512])
detected during instantiation of "void eq_cuda_context::freemem() [with RB=9U, SM=1248U, SSM=12U, THREADS=640U, PACKER=packer_cantor]"
(2124): here
equi/cuda_equi.cu(2111): error: no instance of constructor "rt_error::rt_error" matches the argument list
argument types are: (char [512])
detected during instantiation of "void eq_cuda_context::freemem() [with RB=9U, SM=1248U, SSM=12U, THREADS=640U, PACKER=packer_cantor]"
(2124): here
I've been unable to find any explanation online for these errors. A look through the source code was unproductive outside of revealing the origin of rt_error (equi/eqcuda.hpp appears to remap std::runtime_error to rt_error, not that this tells me much of anything). I've tried using different CUDA versions on the off chance that this was related to that, but 8.0, 9.0, and 9.1 all give the same error...
I'm honestly not sure how the heck to resolve the issue at this point. Does anyone have any ideas? Some help would be greatly appreciated. I've gone through the past 30 pages of the thread looking for answers and have found nothing helpful.
I found a solution. Here are the instructions for anyone else with the same issue in the future...
Explanation: I had a hunch that OSX wasn't handling the std::runtime_error redefinition correctly, so I tried commenting out the original alternative redefinition and replacing it with the windows-type redefinition, which worked on OSX. In order to keep the code compatible with Linux and other similar platforms, I then modified it again to only use that redefinition type for OSX/Windows.
In limited testing with versions compiled using CUDA 8.0 only I noticed no obvious issues caused by my change, but it's possible that some could pop up in the future.
I'm not sure if I want to submit this as a PR to the repo yet. I'll probably want to conduct further testing before I do that.