Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Debian 8 Build - Latest #84

Closed
djneely opened this issue Feb 11, 2018 · 6 comments
Closed

Debian 8 Build - Latest #84

djneely opened this issue Feb 11, 2018 · 6 comments

Comments

@djneely
Copy link

djneely commented Feb 11, 2018

I've got cpuminer-opt up and running on several Debian 8 boxes without issue. Stood them all up a month (or more) ago now. However, as of tonight I was trying to build it on another server of mine and I'm seeing the following errors. Is there something that is no longer supported now on a D8 box or missing a package or something? I installed all the primary packages I had to for the other builds: curl, libssl, gmp, etc. Not sure what's going on with this one.

Thanks. Great work on this.

In file included from algo/argon2/ar2/sj/scrypt-jane-salsa64.h:12:0,
from algo/argon2/ar2/sj/scrypt-jane-romix.h:2,
from algo/argon2/ar2/ar2-scrypt-jane.c:19:
algo/argon2/ar2/sj/scrypt-jane-romix-basic.h:8:1: warning: ‘scrypt_romix_nop’ defined but not used [-Wunused-function]
scrypt_romix_nop(scrypt_mix_word_t *blocks, size_t nblocks) {
^
mv -f algo/argon2/ar2/.deps/cpuminer-cores.Tpo algo/argon2/ar2/.deps/cpuminer-cores.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -Iyes/include -I/home/derek/usr/include -fno-strict-aliasing -I./compat/jansson -I. -Iyes/include -I/home/derek/usr/include -Wno-pointer-sign -Wno-pointer-to-int-cast -O3 -march=native -Wall -Iyes/include -I/home/derek/usr/include -MT algo/argon2/ar2/cpuminer-blake2b.o -MD -MP -MF algo/argon2/ar2/.deps/cpuminer-blake2b.Tpo -c -o algo/argon2/ar2/cpuminer-blake2b.o test -f 'algo/argon2/ar2/blake2b.c' || echo './'algo/argon2/ar2/blake2b.c
mv -f algo/argon2/ar2/.deps/cpuminer-blake2b.Tpo algo/argon2/ar2/.deps/cpuminer-blake2b.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -Iyes/include -I/home/derek/usr/include -fno-strict-aliasing -I./compat/jansson -I. -Iyes/include -I/home/derek/usr/include -Wno-pointer-sign -Wno-pointer-to-int-cast -O3 -march=native -Wall -Iyes/include -I/home/derek/usr/include -MT algo/blake/cpuminer-sph_blake.o -MD -MP -MF algo/blake/.deps/cpuminer-sph_blake.Tpo -c -o algo/blake/cpuminer-sph_blake.o test -f 'algo/blake/sph_blake.c' || echo './'algo/blake/sph_blake.c
mv -f crypto/.deps/cpuminer-c_skein.Tpo crypto/.deps/cpuminer-c_skein.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -Iyes/include -I/home/derek/usr/include -fno-strict-aliasing -I./compat/jansson -I. -Iyes/include -I/home/derek/usr/include -Wno-pointer-sign -Wno-pointer-to-int-cast -O3 -march=native -Wall -Iyes/include -I/home/derek/usr/include -MT algo/blake/cpuminer-blake-hash-4way.o -MD -MP -MF algo/blake/.deps/cpuminer-blake-hash-4way.Tpo -c -o algo/blake/cpuminer-blake-hash-4way.o test -f 'algo/blake/blake-hash-4way.c' || echo './'algo/blake/blake-hash-4way.c
In file included from algo/blake/blake-hash-4way.h:48:0,
from algo/blake/blake-hash-4way.c:39:
./avxdefs.h: In function ‘mm_brotr_128’:
./avxdefs.h:445:3: warning: implicit declaration of function ‘_mm_bsrli_si128’ [-Wimplicit-function-declaration]
return _mm_or_si128( _mm_bsrli_si128( v, c ), _mm_bslli_si128( v, 16-(c) ) );}
^
./avxdefs.h:445:3: warning: implicit declaration of function ‘_mm_bslli_si128’ [-Wimplicit-function-declaration]
./avxdefs.h:445:10: error: incompatible type for argument 1 of ‘_mm_or_si128’
return _mm_or_si128( _mm_bsrli_si128( v, c ), _mm_bslli_si128( v, 16-(c) ) );}
^
In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/xmmintrin.h:1258:0,
from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:29,
from ./avxdefs.h:38,
from algo/blake/blake-hash-4way.h:48,
from algo/blake/blake-hash-4way.c:39:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/emmintrin.h:1260:1: note: expected ‘__m128i’ but argument is of type ‘int’
_mm_or_si128 (__m128i __A, __m128i __B)
^
In file included from algo/blake/blake-hash-4way.h:48:0,
from algo/blake/blake-hash-4way.c:39:
./avxdefs.h:445:10: error: incompatible type for argument 2 of ‘_mm_or_si128’
return _mm_or_si128( _mm_bsrli_si128( v, c ), _mm_bslli_si128( v, 16-(c) ) );}
^
In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/xmmintrin.h:1258:0,
from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:29,
from ./avxdefs.h:38,
from algo/blake/blake-hash-4way.h:48,
from algo/blake/blake-hash-4way.c:39:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/emmintrin.h:1260:1: note: expected ‘__m128i’ but argument is of type ‘int’
_mm_or_si128 (__m128i __A, __m128i __B)
^
In file included from algo/blake/blake-hash-4way.h:48:0,
from algo/blake/blake-hash-4way.c:39:
./avxdefs.h: In function ‘mm_brotl_128’:
./avxdefs.h:449:10: error: incompatible type for argument 1 of ‘_mm_or_si128’
return _mm_or_si128( _mm_bslli_si128( v, c ), _mm_bsrli_si128( v, 16-(c) ) );
^
In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/xmmintrin.h:1258:0,
from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:29,
from ./avxdefs.h:38,
from algo/blake/blake-hash-4way.h:48,
from algo/blake/blake-hash-4way.c:39:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/emmintrin.h:1260:1: note: expected ‘__m128i’ but argument is of type ‘int’
_mm_or_si128 (__m128i __A, __m128i __B)
^
In file included from algo/blake/blake-hash-4way.h:48:0,
from algo/blake/blake-hash-4way.c:39:
./avxdefs.h:449:10: error: incompatible type for argument 2 of ‘_mm_or_si128’
return _mm_or_si128( _mm_bslli_si128( v, c ), _mm_bsrli_si128( v, 16-(c) ) );
^
In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/xmmintrin.h:1258:0,
from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:29,
from ./avxdefs.h:38,
from algo/blake/blake-hash-4way.h:48,
from algo/blake/blake-hash-4way.c:39:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/emmintrin.h:1260:1: note: expected ‘__m128i’ but argument is of type ‘int’
_mm_or_si128 (__m128i __A, __m128i __B)
^
In file included from algo/blake/blake-hash-4way.h:48:0,
from algo/blake/blake-hash-4way.c:39:
./avxdefs.h: In function ‘mm256_brotr_256’:
./avxdefs.h:955:1: warning: implicit declaration of function ‘_mm256_bsrli_epi128’ [-Wimplicit-function-declaration]
{ return _mm256_or_si256( _mm256_bsrli_epi128( v, c ),
^
./avxdefs.h:956:27: warning: implicit declaration of function ‘_mm256_bslli_epi128’ [-Wimplicit-function-declaration]
mm256_swap_128( _mm256_bslli_epi128( v, 16-(c) ) ) );
^
./avxdefs.h:934:34: error: incompatible type for argument 1 of ‘_mm256_permute4x64_epi64’
#define mm256_swap_128( v ) _mm256_permute4x64_epi64( v, 0x4e )
^
./avxdefs.h:956:27: note: in expansion of macro ‘mm256_swap_128’
mm256_swap_128( _mm256_bslli_epi128( v, 16-(c) ) ) );
^
In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:43:0,
from ./avxdefs.h:38,
from algo/blake/blake-hash-4way.h:48,
from algo/blake/blake-hash-4way.c:39:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/avx2intrin.h:1053:1: note: expected ‘__m256i’ but argument is of type ‘int’
_mm256_permute4x64_epi64 (__m256i __X, const int __M)
^
In file included from algo/blake/blake-hash-4way.h:48:0,
from algo/blake/blake-hash-4way.c:39:
./avxdefs.h:955:10: error: incompatible type for argument 1 of ‘_mm256_or_si256’
{ return _mm256_or_si256( _mm256_bsrli_epi128( v, c ),
^
In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:43:0,
from ./avxdefs.h:38,
from algo/blake/blake-hash-4way.h:48,
from algo/blake/blake-hash-4way.c:39:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/avx2intrin.h:577:1: note: expected ‘__m256i’ but argument is of type ‘int’
_mm256_or_si256 (__m256i __A, __m256i __B)
^
In file included from algo/blake/blake-hash-4way.h:48:0,
from algo/blake/blake-hash-4way.c:39:
./avxdefs.h: In function ‘mm256_brotl_256’:
./avxdefs.h:934:34: error: incompatible type for argument 1 of ‘_mm256_permute4x64_epi64’
#define mm256_swap_128( v ) _mm256_permute4x64_epi64( v, 0x4e )
^
./avxdefs.h:961:27: note: in expansion of macro ‘mm256_swap_128’
mm256_swap_128( _mm256_bsrli_epi128( v, 16-(c) ) ) );
^
In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:43:0,
from ./avxdefs.h:38,
from algo/blake/blake-hash-4way.h:48,
from algo/blake/blake-hash-4way.c:39:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/avx2intrin.h:1053:1: note: expected ‘__m256i’ but argument is of type ‘int’
_mm256_permute4x64_epi64 (__m256i __X, const int __M)
^
In file included from algo/blake/blake-hash-4way.h:48:0,
from algo/blake/blake-hash-4way.c:39:
./avxdefs.h:960:10: error: incompatible type for argument 1 of ‘_mm256_or_si256’
{ return _mm256_or_si256( _mm256_bslli_epi128( v, c ),
^
In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:43:0,
from ./avxdefs.h:38,
from algo/blake/blake-hash-4way.h:48,
from algo/blake/blake-hash-4way.c:39:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/avx2intrin.h:577:1: note: expected ‘__m256i’ but argument is of type ‘int’
_mm256_or_si256 (__m256i __A, __m256i __B)
^
In file included from algo/blake/blake-hash-4way.h:48:0,
from algo/blake/blake-hash-4way.c:39:
./avxdefs.h: In function ‘mm256_brotr_128’:
./avxdefs.h:966:10: error: incompatible type for argument 1 of ‘_mm256_or_si256’
{ return _mm256_or_si256( _mm256_bsrli_epi128( v, c ),
^
In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:43:0,
from ./avxdefs.h:38,
from algo/blake/blake-hash-4way.h:48,
from algo/blake/blake-hash-4way.c:39:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/avx2intrin.h:577:1: note: expected ‘__m256i’ but argument is of type ‘int’
_mm256_or_si256 (__m256i __A, __m256i __B)
^
In file included from algo/blake/blake-hash-4way.h:48:0,
from algo/blake/blake-hash-4way.c:39:
./avxdefs.h:966:10: error: incompatible type for argument 2 of ‘_mm256_or_si256’
{ return _mm256_or_si256( _mm256_bsrli_epi128( v, c ),
^
In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:43:0,
from ./avxdefs.h:38,
from algo/blake/blake-hash-4way.h:48,
from algo/blake/blake-hash-4way.c:39:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/avx2intrin.h:577:1: note: expected ‘__m256i’ but argument is of type ‘int’
_mm256_or_si256 (__m256i __A, __m256i __B)
^
In file included from algo/blake/blake-hash-4way.h:48:0,
from algo/blake/blake-hash-4way.c:39:
./avxdefs.h: In function ‘mm256_brotl_128’:
./avxdefs.h:971:10: error: incompatible type for argument 1 of ‘_mm256_or_si256’
{ return _mm256_or_si256( _mm256_bslli_epi128( v, c ),
^
In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:43:0,
from ./avxdefs.h:38,
from algo/blake/blake-hash-4way.h:48,
from algo/blake/blake-hash-4way.c:39:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/avx2intrin.h:577:1: note: expected ‘__m256i’ but argument is of type ‘int’
_mm256_or_si256 (__m256i __A, __m256i __B)
^
In file included from algo/blake/blake-hash-4way.h:48:0,
from algo/blake/blake-hash-4way.c:39:
./avxdefs.h:971:10: error: incompatible type for argument 2 of ‘_mm256_or_si256’
{ return _mm256_or_si256( _mm256_bslli_epi128( v, c ),
^
In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:43:0,
from ./avxdefs.h:38,
from algo/blake/blake-hash-4way.h:48,
from algo/blake/blake-hash-4way.c:39:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include/avx2intrin.h:577:1: note: expected ‘__m256i’ but argument is of type ‘int’
_mm256_or_si256 (__m256i __A, __m256i __B)
^
Makefile:2413: recipe for target 'algo/blake/cpuminer-blake-hash-4way.o' failed
make[2]: *** [algo/blake/cpuminer-blake-hash-4way.o] Error 1
make[2]: *** Waiting for unfinished jobs....
mv -f algo/argon2/ar2/.deps/cpuminer-opt.Tpo algo/argon2/ar2/.deps/cpuminer-opt.Po
mv -f algo/argon2/ar2/.deps/cpuminer-ar2-scrypt-jane.Tpo algo/argon2/ar2/.deps/cpuminer-ar2-scrypt-jane.Po
mv -f algo/blake/.deps/cpuminer-sph_blake.Tpo algo/blake/.deps/cpuminer-sph_blake.Po
make[2]: Leaving directory '/home/derek/cpuminer-opt'
Makefile:5194: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/derek/cpuminer-opt'
Makefile:838: recipe for target 'all' failed
make: *** [all] Error 2
strip: 'cpuminer': No such file

@JayDDee
Copy link
Owner

JayDDee commented Feb 11, 2018

From the errors it can't find the Intel intrinsic definitions which suggests a missing package.
I don't know the package name but I would expect it to be included with the compiler.

What's diffreent between the systems that work and the one that doesn't Can you still compile on
those other systems? That should confirm if it's an issue with that one system.

If you still have problems please provide your CPU model and which cpuminer versions work
and which don't. I presume your using build.sh, otherwise show your commands.

@djneely
Copy link
Author

djneely commented Feb 11, 2018

Thanks for getting back. So, I hopped on one of the systems that I have it currently running on (mining Monero). Did a new checkout to a temp directory and tried to build. Using build.sh as I've done on all. And I'm seeing the same error as above. Both of these boxes are updated Debian 8 boxes running on GCP (cpu info below). I jumped on another VM running through virtual box and same issue as above as well.

To test further on the systems that I do have them working on I copied the checkout that compiled previously for me and did another build.sh and they build the binary fine.

I jumped onto a debian-9 Virtualbox VM I had just setup this past week and ran through the tests and the most recent checkout built fine.

To get the other box going though I used one of the checkouts that is working and just rsync'ed it across and got it built.

$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 79
model name : Intel(R) Xeon(R) CPU @ 2.20GHz
stepping : 0
microcode : 0x1
cpu MHz : 2200.000
cache size : 56320 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch xsaveopt invpcid_single fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap
bogomips : 4400.00
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:

@djneely
Copy link
Author

djneely commented Feb 11, 2018

As far as versions that work/don't:

Debian 8:
-- Work: 3.7.9 and 3.8.0
-- Errors: 3.8.1.1

Debian 9:
-- Work: 3.8.0 and 3.8.1.1

@JayDDee
Copy link
Owner

JayDDee commented Feb 11, 2018

The specific compile errors are related to a set of SIMD byte shift intrinsics like _mm_bsrli_si128.
They were introduced in cpuminer-opt-3.8.1. That explains the cpuminer connection.

But why does it compile on Deb9 but not Deb8? It must be something related to your Deb8
configuration. It seems odd that only some intrinsics are missing and the missing ones span
SSE2 to AVX2. That doesn't fit with any packaging scheme. The packages would be divided
by SSE2, AVX, AVX2 etc, you're missing parts of each. It doesn't make any sense which leads
me to believe your Deb8 systems are messed up rather than simply missing a package.

I have no problems using Ubuntu 14.04 or 16.04 and you have no problems with Deb9.
A problem with Deb8 seems unlikely (you say you have it up to date and a bug like this
should have been fixed long ago) so it must be your specific setup. If all your systems
were cloned from a corrupt build it would explain why all your Deb8 systems are affected.

Your CPU looks fine, it supports everything up to AVX2.

@JayDDee
Copy link
Owner

JayDDee commented Feb 16, 2018

In the asbsence of further info it's concluded the issue is not with cpuminer-opt.

@JayDDee JayDDee closed this as completed Feb 16, 2018
@derekneely
Copy link

Sounds good JayDDee. I've tried numerous Debian 8 installs on VMs with all the same issue. But no big deal I've already started replacing them with D9 installs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants