-
Notifications
You must be signed in to change notification settings - Fork 372
Linux - OpenCL detection is unreliable #557
Comments
So, as per #552 (comment), @wainersec, the issue looks like it might be related to the syntax of the command-line, do you think? Because Maybe different versions of GGC or Clang can or cannot cope with this. Could you look at the fully qualified command-line which is within the generated makefiles? Are other external libraries being composed differently? |
Hmm - yeah - check this out: https://github.com/ethereum/webthree-helpers/blob/develop/cmake/UseOpenCL.cmake#L9 That "smells" like the problem. Perhaps that workaround is OK for Ubuntu but broken for other distros? The command-line composition likely works in a different way when not "hacked in" like this. Could you try removing that conditional? So replace:
With
|
CC @chfast. Hello, Pawel! This is in relation to ethereum/alethzero#69. CC @chriseth. So funnily enough it looks like we have found the root cause here of the "sometimes OpenCL detection doesn't seem to work on Linux" issue which I was pondering changing the default on yesterday. |
Just replaced those lines but it is still not working. Trying workarround. |
You would need to replace those lines, re-run cmake, then re-run make. If you got the same issue, I would suspect that you were using the same makefile. |
No, used new one. |
See #557 too. |
I think the error is dragged from before, at FindOpenCL.make. OpenCL_LIBRARIES and OpenCL_INCLUDE_DIRS are not getting defined I think. |
And you got the exact some error message? About the -l/usr/... ? |
Yes, same error. I tried deleting the directory and cloning again. https://gist.github.com/wainersec/296d651d58f663ed150f27cb05a14d49 |
OK - so the info we are still missing is the full command-line which make is trying to execute. Please can you grep your makefiles, and try to find the exact fully-expanded command-line? Or I think there is a make "flag" for showing the command-lines it would execute, rather than running them, right? That would be even better. |
This is the gist for the --recon flag of make (the function you just mentioned) https://gist.github.com/wainersec/f865721f2866a50b3ff22b7f30bd17f3 |
Just found the full command: It is found in libethereum/libethash-cl/CMakeFiles/ethash-cl.dir/link.txt |
Oh, delightful ... it looks like that workaround got cut-and-pasted in two places. See https://github.com/ethereum/webthree-helpers/pull/196/files. I have updated the PR to fix both sites. Please could you try applying both changes, and re-generating from scratch? Thanks! And you will need the |
Yay! ld error is gone. New PR works perfect. But just got another error, it has to be with devcrypto and solidity. Should I create a new issue? https://gist.github.com/wainersec/6ba3b7a9ca8fb86e8af8581c58486c7f Thanks. |
Let's head back to your original issue. |
Multiple people have hit issues with OpenCL detection in their Linux builds.
I don't know if it is distro-specific? Are all the issues occurring on non-Ubuntu distros?
Need to investigate.
See, for example, #552 (comment)
And I should search from the previous reports of this and see if I can spot a pattern.
The text was updated successfully, but these errors were encountered: