Show Posts
|
|
Pages: [1] 2 3 4 5 »
|
It's not so trivial anymore.
It might be worthwhile to focus the problem a little more. I suggest trying to compile with a lesser arch like core2 to see if you can, then try to other arches until you identify the one that fails.
The problem seems to be with the compile environment but it could also be your CPU. If it's an AMD it adds another dimension because their implementation of some features is incompatible with Intel. The RELEASE_NOTES have some tips.
Won't help, he needs to update binutils. Even if he uses -march=core2 it will still emit AVX2 instructions and old GNU assembler will break the compilation -- the file responsible is algo/argon2/ar2/sj/scrypt-jane-mix_salsa64-avx2.h, it will emit that instruction no matter what -march compiler option is provided. You can easily replicate that problem yourself with installing gcc 4.8 and binutils 2.20 (which doesn't support avx2) in a chroot, container or virtual machine.
|
|
|
|
/tmp/cc5W6W1g.s:63: Error: no such instruction: `vpermq ymm1,ymm1,0x39'
GNU assembler is too old as well, unfortunately. It doesn't know what 'vpermq' is -- that's an AVX2 instruction. Same goes for other instructions it doesn't know about. GNU assembler is part of binutils. Try installing newer version of binutils. I know for sure that binutils 2.25 supports it, but some earlier versions likely will too.
|
|
|
|
[root@CC ~]# rpm -qa|grep gcc libgcc-4.4.7-18.el6.x86_64 gcc-c++-4.4.7-18.el6.x86_64 gcc-4.4.7-18.el6.x86_64 libgcc-4.4.7-18.el6.i686
Yes, you need to upgrade to newer gcc. Or ask joblo to support a compiler that's 9 years old. Is 4.4 You need 4.5 or newer. Are installed GCC4.8, starting long wait... , thank you for your answer make[2]: *** [algo/argon2/ar2/cpuminer-ar2-scrypt-jane.o] Error 1 make[2]: Leaving directory `/usr/cpuminer-opt' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/cpuminer-opt' make: *** [all] Error 2 [root@CC cpuminer-opt]# gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/local/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../configure --prefix=/usr/local/gcc --enable-threads=posix --disable-checking --enable-languages=c,c++ --disable-multilib Thread model: posix gcc version 4.8.2 (GCC) [root@CC cpuminer-opt]#  This is different error, and you didn't include it here, it's higher. You've pasted make output saying that there was an error above the pasted text.
|
|
|
|
[root@CC ~]# rpm -qa|grep gcc libgcc-4.4.7-18.el6.x86_64 gcc-c++-4.4.7-18.el6.x86_64 gcc-4.4.7-18.el6.x86_64 libgcc-4.4.7-18.el6.i686
Yes, you need to upgrade to newer gcc. Or ask joblo to support a compiler that's 9 years old. Is 4.4 You need 4.5 or newer.
|
|
|
|
[root@CC ~]# rpm -qa|grep gcc libgcc-4.4.7-18.el6.x86_64 gcc-c++-4.4.7-18.el6.x86_64 gcc-4.4.7-18.el6.x86_64 libgcc-4.4.7-18.el6.i686
Yes, you need to upgrade to newer gcc. Or ask joblo to support a compiler that's 9 years old.
|
|
|
|
algo-gate-api.c:215: error: #pragma GCC diagnostic not allowed inside functions make[1]: *** [cpuminer-algo-gate-api.o] Error 1 make[1]: Leaving directory `/usr/cpuminer-opt' make: *** [install-recursive] Error 1 You're likely using gcc 4.4. Use newer compiler.
|
|
|
|
Cannot compile 3.6.6 ): x86_64-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -fno-strict-aliasing -I. -Wno-pointer-sign -Wno-pointer-to-int-cast -O3 -mtune=broadwell -pipe -c -o algo/groestl/aes_ni/cpuminer-ha sh-groestl.o `test -f 'algo/groestl/aes_ni/hash-groestl.c' || echo './'`algo/groestl/aes_ni/hash-gro estl.c In file included from algo/echo/aes_ni/vperm.h:20:0, from algo/echo/aes_ni/hash.c:21: algo/echo/aes_ni/hash.c: In function ‘Compress’: /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline ‘_mm_shuffle_epi8’: target specific option mismatch _mm_shuffle_epi8 (__m128i __X, __m128i __Y) ^
... and many similar errors This particular one you quoted -- your compiler options did not enable SSSE3 support. Please use -march=native instead of -mtune=broadwell
|
|
|
|
nice repository there ... that should be very helpful ... is that windows compile AND source for each version? ... #crysx That's only source code there.
|
|
|
|
I do the same with all my downloads, disk space is cheap.
That makes it a lot easier for me. I can dig out some of the older ones if the're needed.
Wasn't paying attention to the project for some time, so missed a big amount of the releases. And old links posted here are no longer working. I'd like the older ones, and looks like th3.root doesn't have 3.4.5 version in his archive. Do you maybe have a single archive of all of the versions? Would be very grateful ^.^ If memory serves me well 3.4.5 was full with errors in compilation... It wasn't possible to make a binary to any of my systems, so maybe I deleted it. EDIT: Found it on my laptop. Sent. Thanks! If anyone in this thread is interested, I'm hosting those at https://hmage.net/cpuminer-opt/ — the link is permanent.
|
|
|
|
I do the same with all my downloads, disk space is cheap.
That makes it a lot easier for me. I can dig out some of the older ones if the're needed.
Wasn't paying attention to the project for some time, so missed a big amount of the releases. And old links posted here are no longer working. I'd like the older ones, and looks like th3.root doesn't have 3.4.5 version in his archive. Do you maybe have a single archive of all of the versions? Would be very grateful ^.^
|
|
|
|
Hey joblo, do you keep archive of previous versions anywhere? I'm doing research on incremental benchmarks between versions for archival purposes.
Would be grateful if you could give access to previous .tar.gz releases all the way back to the first one.
Thanks in advance.
I may be able to help with that. I keep tar's from version cpuminer-opt-3.1.7 till latest cpuminer-opt-3.5.0. Write a PM if you want them. Thanks! Sent the PM.
|
|
|
|
|
Hey joblo, do you keep archive of previous versions anywhere? I'm doing research on incremental benchmarks between versions for archival purposes.
Would be grateful if you could give access to previous .tar.gz releases all the way back to the first one.
Thanks in advance.
|
|
|
|
Please tell me or guide me how i can handle this problem. Thanks!
QEMU supports AES, but by default it shows a minimal subset of CPU features so that the VM can be moved between physical machines and compiled code on one host will run on another host. Add "-cpu host" to qemu commandline. But beware that the VM will not run properly on another machine that doesn't support same CPU features if you compile anything with "-march" flag. [EDIT]: Also I don't see KVM enabled. Enable KVM with "-enable-kvm" qemu flag in command line.
|
|
|
|
Why Are My Gridseed Blades Exploding? What Components Are Exploding?
Your wallet.
|
|
|
|
Tried -std=gnu11. he is using Arch linux, so i guess gcc 6.1.1
Downgraded to compile this. As long as you're compiling for AES you don't need GRS, just rip it out. If he's compiling for AES he shouldn't even need to have non-AES version compiled at all.
|
|
|
|
Good coding style. Will accept that in my repo. [EDIT]: merged.
|
|
|
|
For the future, gcc has a flag: -fstack-usage when compiling it generates *.su files that have info how much bytes a function would need for stack. After adding that, recompiling cpuminer-opt on core2 and then printing all *.su files, sorted by size: $ find . -iname '*.su' -print0 | xargs -0 cat |sort -k2n|tail|column -t x17.c:212:6:x17hash_alt 3904 static cpu-miner.c:2689:5:main 4144 static x17.c:87:13:x17hash 4256 static hodl-wolf.c:28:5:scanhash_hodl_wolf 4304 static scrypt.c:696:12:scanhash_scrypt 7680 dynamic,bounded hmq1725.c:143:13:hmq1725hash 7744 static scrypt.c:648:13:scrypt_1024_1_1_256_24way 9088 dynamic,bounded m7mhash.c:195:5:scanhash_m7m_hash 12464 dynamic,bounded api.c:511:13:api 17136 dynamic,bounded cryptonight.c:172:6:cryptonight_hash_ctx 2097648 static
You might want to increase max stack size in makefile to 3mb or more, setting it to 2MB isn't enough because you need 2097648 bytes just for that function. Edit2: I couldn't find any documentation for --stack so I don't know what makefile is doing.
"-Wl," means "pass this to linker", which means ld, so you need to check the documentation of ld -- http://linux.die.net/man/1/ldOn Windows, stack size limit is specified in the binary. On Linux, the limit is set by system administrator. On current debian, default is 8Mb. I found -fno-stack-limit but it still crashes at the same place.
This is different feature from above, and -fno-stack-limit is used to negate -fstack-limit-register/-fstack-limit-symbol, by default this feature is not set.
|
|
|
|
But the problem is only on Windows, oh well.
msys comes with gdb, it should be able to catch the segfault, then you can inspect the registers, stack and variables. Compiling with "-O0 -g3" instead of "-O3" should help gdb give you more info.
|
|
|
|
cpuminer-cpu-miner.o:cpu-miner.c:(.text+0x695a): undefined reference to `__stack_chk_fail' cpuminer-cpu-miner.o:cpu-miner.c:(.text+0x6a8c): undefined reference to `__stack_chk_guard' cpuminer-cpu-miner.o:cpu-miner.c:(.text+0x6c78): undefined reference to `__stack_chk_guard' cpuminer-cpu-miner.o:cpu-miner.c:(.text+0x6d61): undefined reference to `__stack_chk_fail' c:/msys/opt/windows_64/bin/../lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../x86_64-w64-mingw32/bin/ld.exe: cpuminer-cpu-miner.o: bad reloc address 0x0 in section `.pdata' collect2.exe: error: ld returned 1 exit status make[2]: *** [cpuminer.exe] Error 1
I don't know what this means but it does mention pdata, an argument to the function that is failing. Cryptonight is coded the same as every other algo and every algo hash function references pdata the same way. It means that your build of gcc doesn't have stack protection support library (functions __stack_chk_fail() and __stack_chk_guard()). It builds fine on debian linux though.
|
|
|
|
|