Ok. Thanks for the advice.
Iām attempting to build zcash using macports gcc5 on OSX and ran into this issue libsnark osx - Pastebin.com while attempting to build libsnark.
Has anyone else run into this?
edit: is this related to clang?
It depends⦠Might be, find out what is your c++ in that build script scope⦠e.g. $ which c++
MacBook-Pro:zcash mugatu which c++
/opt/local/bin/c++
MacBook-Pro:zcash mugatu c++ -v
Using built-in specs.
COLLECT_GCC=c++
COLLECT_LTO_WRAPPER=/opt/local/libexec/gcc/x86_64-apple-darwin15/5.4.0/lto-wrapper
Target: x86_64-apple-darwin15
Configured with: /opt/local/var/macports/build/_opt_mports_dports_lang_gcc5/gcc5/work/gcc-5.4.0/configure --prefix=/opt/local --build=x86_64-apple-darwin15 --enable-languages=c,c++,objc,obj-c++,lto,fortran,java --libdir=/opt/local/lib/gcc5 --includedir=/opt/local/include/gcc5 --infodir=/opt/local/share/info --mandir=/opt/local/share/man --datarootdir=/opt/local/share/gcc-5 --with-local-prefix=/opt/local --with-system-zlib --disable-nls --program-suffix=-mp-5 --with-gxx-include-dir=/opt/local/include/gcc5/c++/ --with-gmp=/opt/local --with-mpfr=/opt/local --with-mpc=/opt/local --with-isl=/opt/local --enable-stage1-checking --disable-multilib --enable-lto --enable-libstdcxx-time --with-build-config=bootstrap-debug --with-as=/opt/local/bin/as --with-ld=/opt/local/bin/ld --with-ar=/opt/local/bin/ar --with-bugurl=https://trac.macports.org/newticket --with-pkgversion=āMacPorts gcc5 5.4.0_0ā
Thread model: posix
gcc version 5.4.0 (MacPorts gcc5 5.4.0_0)
ok, I got further by removing ā-march=native -mtune=nativeā from the libsnark Makefile, but now Iām running into the following:
src/common/profiling.cpp: In function 'long long int libsnark::get_nsec_cpu_time()':
src/common/profiling.cpp:41:10: error: '::clock_gettime' has not been declared
if ( ::clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts) )
^~
compilation terminated due to -Wfatal-errors.
make[1]: *** [src/common/profiling.o] Error 1
Hello Adam
Please
you could write a step by step guide to build on osx ?
THX
Donāt have enough time⦠The principle is to build everything separately (so it isnāt that messy) with GCC5. BUT you have to be absolutely sure that youāve really used GCC not Clang.
I without a step by step guide are not able to compile
hey adam
i am totally clouless in zcash mining - do you know somere i can get instruction or consultent about it?
yoni9091@gmail.com
Donāt use MacPorts, itās essentially a dead project and will make a mess with latest versions of OSX. Clean up your machine (major pain) then install Homebrew.
ok, I used macports for a few years a few years ago and was familiar with it, which is why I used it. Iāll probably end up doing a fresh install in time for zcash
Could you please explain how you replaced clang with the brew gcc compiler? I presume that you can specify this using options with āmakeā and āconfigureā, but there is no documentation, and it is not immediately obvious how to do this.
Using the brew version of gcc does not solve this problem (or if it does, it creates other problemsā¦). See this issue on github.
This is the exact spot I am now stuck at trying to build with gcc 5 from homebrew
If I can just get libsnark to build with Appleās clang, I think Iāve been able to get past all the other issues Iāve seen here or elsewhere with building with it. Iād REALLY like to know how the mythical clang build the libsnark README mentions was accomplished.
@mugatu and I both just got libsnark to build on OS X with gcc5 from brew, you have to install gnu binutils and use the version of ar thatās in it by prepending āAR=garā to your make command line. So a mac build/port is getting closer.
Here is my command line: CC=gcc-6 CPP=cpp-6 CXX=g+±6 HOST=x86_64-apple-darwin15.6.0 AR=gar J=12 zcutil/build.sh
I still fail in the libsnark compilation. How exactly did you guys(@anon47418038 & @mugatu) get libsnark to compile?
ā¦
src/common/profiling.cpp: In function ālong long int libsnark::get_nsec_cpu_time()ā:
src/common/profiling.cpp:41:10: error: ā::clock_gettimeā has not been declared
if ( ::clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts) )
^~
compilation terminated due to -Wfatal-errors.
make[1]: *** [src/common/profiling.o] Error 1
make: *** [/Users/wclark/Sites/zcash/depends/work/build/x86_64-apple-darwin15.6.0/libsnark/0.1-7648794e724/./.stamp_built] Error 2
The short answer is āa couple/few weeks of heavy workā, hereās the long one:
@Mugatu hacked up a modified version of profiling.cpp that builds on Mac (it lacks ::clock_gettime support). Also, I went down the AR=gar path before, and it wonāt work, other stuff in the dependencies need the Apple Xcode provided ar, which is actually somewhat normal to use on the Mac platform, regardless of compiler. I forked libsnark to use the Apple ar, too, and use that version to build everything in depends/.
I have various branches in my fork of zcash for mac (using clang right now for libsnark seems to be a lost cause) . I can build all the dependencies and most of the stuff in zcash/src on Mac with gcc from brew, but am hitting some C++ issues because gcc has different defaults on Mac vs linux, and GNU autoconf generates some defaults that arenāt right for building zcash, and Iām working through those now.
But I have that on hold right now as rc2 is gonna reset the testnet, and I need to merge its changes into my current Mac branch in my fork.
Oh thereās also the list of all the different brew packages I have installed (or NOT, as some things will interfere or get picked by autoconf to link against when they shouldnāt!)
OK, I successfully compiled libsnark by using @mugatuās approach.
Now I am stuck because OSX install command does not support the -D option.
Here are the 2 references to install using the -D option:
./depends/packages/googlemock.mk: install -D ./make/gmock-all.o ((package)_staging_dir)(host_prefix)/lib/libgmock.a && \ ./depends/packages/googletest.mk: install -D ./make/gtest.a ((package)_staging_dir)(host_prefix)/lib/libgtest.a && \