![]() |
Compiling GpuOwl on Linux Mint errors
Trying to compile GpuOwl on Linux Mint 19.3. Getting the following error:
[CODE] zfr@Daria:~/Desktop/gpuowl-7.2$ make \echo \"`git describe --tags --long --dirty --always`\" > version.new /bin/sh: 1: git: not found diff -q -N version.new version.inc >/dev/null || mv version.new version.inc echo Version: `cat version.inc` Version: "" g++ -MT ProofCache.o -MMD -MP -MF .d/ProofCache.Td -Wall -O2 -std=c++17 -c -o ProofCache.o ProofCache.cpp g++ -MT Proof.o -MMD -MP -MF .d/Proof.Td -Wall -O2 -std=c++17 -c -o Proof.o Proof.cpp g++ -MT Pm1Plan.o -MMD -MP -MF .d/Pm1Plan.Td -Wall -O2 -std=c++17 -c -o Pm1Plan.o Pm1Plan.cpp In file included from /usr/include/c++/8/cassert:44, from Pm1Plan.cpp:5: Pm1Plan.cpp: In function ‘constexpr u32 {anonymous}::firstMissingFactor(u32)’: Pm1Plan.cpp:65:3: error: call to non-‘constexpr’ function ‘void __assert_fail(const char*, const char*, unsigned int, const char*)’ assert(false); ^~~~~~ Makefile:33: recipe for target 'Pm1Plan.o' failed make: *** [Pm1Plan.o] Error 1 [/CODE]I'm using the 7.2 release version by the way, not the latest master code. Also, I'd rather not use git if I can help it. I just downloaded the 7.2 code from here: [url]https://github.com/preda/gpuowl/releases[/url] Any help? |
OK, I figured it out. It seems to be related to this bug, that's been fixed in later gcc version.
[url]https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86678[/url] In case anyone else has the same issue, update gcc to gcc-9 and it will solve it. Now getting another error. [CODE] echo \"`git describe --tags --long --dirty --always`\" > version.new /bin/sh: 1: git: not found diff -q -N version.new version.inc >/dev/null || mv version.new version.inc echo Version: `cat version.inc` Version: "" g++ -MT Pm1Plan.o -MMD -MP -MF .d/Pm1Plan.Td -Wall -O2 -std=c++17 -c -o Pm1Plan.o Pm1Plan.cpp g++ -MT B1Accumulator.o -MMD -MP -MF .d/B1Accumulator.Td -Wall -O2 -std=c++17 -c -o B1Accumulator.o B1Accumulator.cpp g++ -MT Memlock.o -MMD -MP -MF .d/Memlock.Td -Wall -O2 -std=c++17 -c -o Memlock.o Memlock.cpp g++ -MT log.o -MMD -MP -MF .d/log.Td -Wall -O2 -std=c++17 -c -o log.o log.cpp g++ -MT GmpUtil.o -MMD -MP -MF .d/GmpUtil.Td -Wall -O2 -std=c++17 -c -o GmpUtil.o GmpUtil.cpp g++ -MT Worktodo.o -MMD -MP -MF .d/Worktodo.Td -Wall -O2 -std=c++17 -c -o Worktodo.o Worktodo.cpp g++ -MT common.o -MMD -MP -MF .d/common.Td -Wall -O2 -std=c++17 -c -o common.o common.cpp g++ -MT main.o -MMD -MP -MF .d/main.Td -Wall -O2 -std=c++17 -c -o main.o main.cpp g++ -MT Gpu.o -MMD -MP -MF .d/Gpu.Td -Wall -O2 -std=c++17 -c -o Gpu.o Gpu.cpp g++ -MT clwrap.o -MMD -MP -MF .d/clwrap.Td -Wall -O2 -std=c++17 -c -o clwrap.o clwrap.cpp g++ -MT Task.o -MMD -MP -MF .d/Task.Td -Wall -O2 -std=c++17 -c -o Task.o Task.cpp g++ -MT Saver.o -MMD -MP -MF .d/Saver.Td -Wall -O2 -std=c++17 -c -o Saver.o Saver.cpp g++ -MT timeutil.o -MMD -MP -MF .d/timeutil.Td -Wall -O2 -std=c++17 -c -o timeutil.o timeutil.cpp g++ -MT Args.o -MMD -MP -MF .d/Args.Td -Wall -O2 -std=c++17 -c -o Args.o Args.cpp g++ -MT state.o -MMD -MP -MF .d/state.Td -Wall -O2 -std=c++17 -c -o state.o state.cpp g++ -MT Signal.o -MMD -MP -MF .d/Signal.Td -Wall -O2 -std=c++17 -c -o Signal.o Signal.cpp g++ -MT FFTConfig.o -MMD -MP -MF .d/FFTConfig.Td -Wall -O2 -std=c++17 -c -o FFTConfig.o FFTConfig.cpp g++ -MT AllocTrac.o -MMD -MP -MF .d/AllocTrac.Td -Wall -O2 -std=c++17 -c -o AllocTrac.o AllocTrac.cpp g++ -MT gpuowl-wrap.o -MMD -MP -MF .d/gpuowl-wrap.Td -Wall -O2 -std=c++17 -c -o gpuowl-wrap.o gpuowl-wrap.cpp g++ -MT sha3.o -MMD -MP -MF .d/sha3.Td -Wall -O2 -std=c++17 -c -o sha3.o sha3.cpp g++ -MT md5.o -MMD -MP -MF .d/md5.Td -Wall -O2 -std=c++17 -c -o md5.o md5.cpp g++ -o gpuowl ProofCache.o Proof.o Pm1Plan.o B1Accumulator.o Memlock.o log.o GmpUtil.o Worktodo.o common.o main.o Gpu.o clwrap.o Task.o Saver.o timeutil.o Args.o state.o Signal.o FFTConfig.o AllocTrac.o gpuowl-wrap.o sha3.o md5.o -lstdc++fs -lOpenCL -lgmp -pthread -L/opt/rocm/opencl/lib -L/opt/rocm-3.3.0/opencl/lib/x86_64 -L/opt/rocm-3.1.0/opencl/lib/x86_64 -L/opt/rocm/opencl/lib/x86_64 -L/opt/amdgpu-pro/lib/x86_64-linux-gnu -L. /usr/bin/ld: cannot find -lOpenCL collect2: error: ld returned 1 exit status Makefile:19: recipe for target 'gpuowl' failed make: *** [gpuowl] Error 1 [/CODE] Going to google into this myself... |
OK, the above was fixed by linking the OpenCL library files
[url]https://github.com/nginnever/zogminer/issues/54[/url] [CODE] sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/lib/libOpenCL.so [/CODE] Now getting this: [CODE] zfr@Daria:~/Desktop/gpuowl-7.2$ make echo \"`git describe --tags --long --dirty --always`\" > version.new /bin/sh: 1: git: not found diff -q -N version.new version.inc >/dev/null || mv version.new version.inc echo Version: `cat version.inc` Version: "" g++ -o gpuowl ProofCache.o Proof.o Pm1Plan.o B1Accumulator.o Memlock.o log.o GmpUtil.o Worktodo.o common.o main.o Gpu.o clwrap.o Task.o Saver.o timeutil.o Args.o state.o Signal.o FFTConfig.o AllocTrac.o gpuowl-wrap.o sha3.o md5.o -lstdc++fs -lOpenCL -lgmp -pthread -L/opt/rocm/opencl/lib -L/opt/rocm-3.3.0/opencl/lib/x86_64 -L/opt/rocm-3.1.0/opencl/lib/x86_64 -L/opt/rocm/opencl/lib/x86_64 -L/opt/amdgpu-pro/lib/x86_64-linux-gnu -L. ProofCache.o: In function `ProofCache::read(unsigned int) const': ProofCache.cpp:(.text+0x960): undefined reference to `std::filesystem::__cxx11::filesystem_error::_M_gen_what()' ProofCache.cpp:(.text+0xa65): undefined reference to `std::filesystem::__cxx11::filesystem_error::_M_gen_what()' ProofCache.o: In function `ProofCache::write(unsigned int, std::vector<unsigned int, std::allocator<unsigned int> > const&)': ProofCache.cpp:(.text+0x12d3): undefined reference to `std::filesystem::__cxx11::filesystem_error::_M_gen_what()' Proof.o: In function `std::filesystem::__cxx11::filesystem_error::filesystem_error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::filesystem::__cxx11::path const&, std::error_code)': Proof.cpp:(.text._ZNSt10filesystem7__cxx1116filesystem_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathESt10error_code[_ZNSt10filesystem7__cxx1116filesystem_errorC5ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_4pathESt10error_code]+0x2a0): undefined reference to `std::filesystem::__cxx11::filesystem_error::_M_gen_what()' collect2: error: ld returned 1 exit status Makefile:19: recipe for target 'gpuowl' failed make: *** [gpuowl] Error 1 [/CODE] |
OK, solved. Not sure what I did wrong, but after just deleting everything and starting from scratch it went fine.
So for anyone else having issues on Linux Mint 19: Update gcc to gcc-9. Note: You have to manually add the repository. [CODE] sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update sudo apt install gcc-9 [/CODE] Link the OpenCL library files [CODE] sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/lib/libOpenCL.so [/CODE] |
| All times are UTC. The time now is 02:35. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.