CryptoGoblin
CryptoGoblin copied to clipboard
abort trap: 6 on macos 10.13.6 build
Built with brew-installed gcc and with apple's gcc but both binaries fail with Abort trap: 6
. For the homebrew approach, I set CC=/usr/local/bin/gcc-8
and C++=/usr/local/bin/c++-8
, but that caused a build error with the ld
flag issue. Setting only CC built fine. Unsetting CC to use the apple's default also built fine.
Either way, both binaries fail immediately after printing the pool connection. Let me know what you need on my end.
Enable "Verbose" in build.sh, and rebuild. Put the whole build log up on pastebin.com for example. You might need to tell cmake to use gcc's ld, ar and ranlib too. A workaround to just get it working would be to build with lto=off, but you loose some of the optimizations too.
Here's the cmake output log (https://pastebin.com/MTvt4KVw). I also just built with lto=OFF
, which builds fine but the binary aborts out.
Just checking if anyone has had any luck at all building this on a Mac? If yes, then please advise steps you used to build (and any pitfalls)? Thank you!
Here are specs for my Mac:
Mojave (10.14.3) on a Mac Pro (2012) with 2 CPU's (12 cores total), 40 GB RAM. GPU is an
AMD Radeon RX 580 8GB (Sapphire Nitro+)
I think you need to install XCode to build it on a mac, but I don't own one and have never even used one, so I have no idea. I don't even know what the difference is between brew and xcode, but from what I hear, rumor is that xcode is more friendly to this kind of code.
For optimal chances of success, I'd try to disable hwloc, microhttpd, openssl, cuda, opencl, lto, portable in build.sh. Also enable onlyxmr and verbose. That cuts down on the amount of code that can break, and gives you a chance of figuring out what fails with the more verbose messages.
Thank you, I'll try the different options and see if I can get it to work... I do already have XCODE installed, but I think something else is going on that prevents the successful build... I'll give it another try later this week...
Not yet giving up on trying to make CryptoGoblin work on my MacPro... I used Xcode to compile, as suggested: -- Check for working CXX compiler: /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
Xcode seems to work, up to a point (please see error code, below) /CryptoGoblin/xmrstak/backend/cpu/crypto/groestl.cpp:35:13: error: use of undeclared identifier '__rolq'
Any ideas how to proceed?
That is weird. According to google, Xcode uses clang/llvm, and for __rolq in clang you need to include x86intrin.h, and that is exactly what is done in that file. The definition is actually located in ia32intrin.h, but x86intrin.h is supposed to include that. You could try to inspect those two files to see whether something fishy is going on. The only reason for it to not be present seems to be if you try to compile in 32bit mode instead of 64bit.. Is there any evidence of that? Do you have both a 64bit and 32bit compiler installed or something?
See the definition of __rolq towards the bottom of ia32intrin.h here: https://clang.llvm.org/doxygen/ia32intrin_8h_source.html
As an ugly hack, you could just copy that function definition over and it should work. But something weird is going on there..
First of all, thank you very much for your quick reply!!
Regarding x86intrin.h --- apparantly it is available only on Linux and Windows libc versions... unfortunately x86intrin.h is not present on the MAC libc :frowning:
My programming skills are terrible, so I can only guess that the fix will be to replace the line that has #include <x86intrin.h> ??
(also, confirmed that I only have the 64 bit compiler, please see screen print.