albertobsd / keyhunt

privkey hunt for crypto currencies that use secp256k1 elliptic curve
MIT License
633 stars 345 forks source link

Make error macOS 11.6 #137

Open daddyhack opened 2 years ago

daddyhack commented 2 years ago

Hi.

I'm having issues compiling on macOS 11.6. Not sure if I'm missing dependencies or what's going on. Output of make is:

g++ -O3 -c oldbloom/bloom.cpp -o oldbloom.o
g++ -O3 -c bloom/bloom.cpp -o bloom.o
gcc -O3 -c base58/base58.c -o base58.o
gcc -O3 -c rmd160/rmd160.c -o rmd160.o
g++ -O3 -c sha3/sha3.c -o sha3.o
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
g++ -O3 -c sha3/keccak.c -o keccak.o
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
sha3/keccak.c:73:24: warning: pragma diagnostic pop could not pop, no matching push [-Wunknown-pragmas]
#pragma GCC diagnostic pop
                       ^
sha3/keccak.c:131:24: warning: pragma diagnostic pop could not pop, no matching push [-Wunknown-pragmas]
#pragma GCC diagnostic pop
                       ^
2 warnings generated.
gcc -O3 -c xxhash/xxhash.c -o xxhash.o
g++ -O3 -c util.c -o util.o
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
g++ -m64 -mssse3 -Wno-unused-result -Wno-write-strings -O2 -c secp256k1/Int.cpp -o Int.o
secp256k1/Int.cpp:343:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:344:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, bits64[1], a->bits64[1], bits64 +1);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:345:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, bits64[2], a->bits64[2], bits64 +2);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:346:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, bits64[3], a->bits64[3], bits64 +3);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:347:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, bits64[4], a->bits64[4], bits64 +4);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:362:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, a->bits64[0], b->bits64[0], bits64 + 0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:363:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, a->bits64[1], b->bits64[1], bits64 + 1);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:364:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, a->bits64[2], b->bits64[2], bits64 + 2);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:365:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, a->bits64[3], b->bits64[3], bits64 + 3);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:366:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, a->bits64[4], b->bits64[4], bits64 + 4);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:379:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, bits64[0], a, bits64 + 0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:380:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, bits64[1], 0, bits64 + 1);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:381:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, bits64[2], 0, bits64 + 2);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:382:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, bits64[3], 0, bits64 + 3);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:383:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, bits64[4], 0, bits64 + 4);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:396:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, bits64[0], 1, bits64 + 0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:397:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, bits64[1], 0, bits64 + 1);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:398:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, bits64[2], 0, bits64 + 2);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:399:7: error: use of undeclared identifier '__builtin_ia32_sbb_u64'; did you mean '__builtin_ia32_subborrow_u64'?
  c = _subborrow_u64(c, bits64[3], 0, bits64 + 3);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
secp256k1/Int.cpp:343:7: note: '__builtin_ia32_subborrow_u64' declared here
  c = _subborrow_u64(c, bits64[0], a->bits64[0], bits64 +0);
      ^
secp256k1/Int.h:222:33: note: expanded from macro '_subborrow_u64'
#define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
                                ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [default] Error 1

Appreciate some help. Thanks.

albertobsd commented 2 years ago

Sorry for not reply before, I'm not sure about the internal hardware of your mac, but most user report issues with the compilation.

I'm working in some version with just GMP that is fully compatible with mac.

I will notify you when that version is finished.

Regards!

MATICtoPOL commented 2 years ago

+1

sigkill commented 2 years ago

+1

mcauser commented 1 year ago

On MacOS 13.2

- #define _subborrow_u64(a,b,c,d) __builtin_ia32_sbb_u64(a,b,c,(long long unsigned int*)d);
+ #define _subborrow_u64(a,b,c,d) __builtin_ia32_subborrow_u64(a,b,c,(long long unsigned int*)d);

Getting warmer

mike@macbook albertobsd--keyhunt % make
g++ -O3 -c oldbloom/bloom.cpp -o oldbloom.o
g++ -O3 -c bloom/bloom.cpp -o bloom.o
gcc -O3 -c base58/base58.c -o base58.o
gcc -O3 -c rmd160/rmd160.c -o rmd160.o
g++ -O3 -c sha3/sha3.c -o sha3.o
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
g++ -O3 -c sha3/keccak.c -o keccak.o
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
sha3/keccak.c:59:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:37:11: note: expanded from macro 'FOR5'
        (X) = 0; (STMT);                                                      \
                 ^
sha3/keccak.c:59:10: note: '{' token is here
        FOR5(y, {
                ^
sha3/keccak.c:37:12: note: expanded from macro 'FOR5'
        (X) = 0; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:65:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        });
        ^
sha3/keccak.c:37:12: note: expanded from macro 'FOR5'
        (X) = 0; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:59:2: note: ')' token is here
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:37:16: note: expanded from macro 'FOR5'
        (X) = 0; (STMT);                                                      \
                      ^
sha3/keccak.c:59:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:38:11: note: expanded from macro 'FOR5'
        (X) = 1; (STMT);                                                      \
                 ^
sha3/keccak.c:59:10: note: '{' token is here
        FOR5(y, {
                ^
sha3/keccak.c:38:12: note: expanded from macro 'FOR5'
        (X) = 1; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:65:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        });
        ^
sha3/keccak.c:38:12: note: expanded from macro 'FOR5'
        (X) = 1; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:59:2: note: ')' token is here
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:38:16: note: expanded from macro 'FOR5'
        (X) = 1; (STMT);                                                      \
                      ^
sha3/keccak.c:59:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:39:11: note: expanded from macro 'FOR5'
        (X) = 2; (STMT);                                                      \
                 ^
sha3/keccak.c:59:10: note: '{' token is here
        FOR5(y, {
                ^
sha3/keccak.c:39:12: note: expanded from macro 'FOR5'
        (X) = 2; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:65:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        });
        ^
sha3/keccak.c:39:12: note: expanded from macro 'FOR5'
        (X) = 2; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:59:2: note: ')' token is here
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:39:16: note: expanded from macro 'FOR5'
        (X) = 2; (STMT);                                                      \
                      ^
sha3/keccak.c:59:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:40:11: note: expanded from macro 'FOR5'
        (X) = 3; (STMT);                                                      \
                 ^
sha3/keccak.c:59:10: note: '{' token is here
        FOR5(y, {
                ^
sha3/keccak.c:40:12: note: expanded from macro 'FOR5'
        (X) = 3; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:65:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        });
        ^
sha3/keccak.c:40:12: note: expanded from macro 'FOR5'
        (X) = 3; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:59:2: note: ')' token is here
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:40:16: note: expanded from macro 'FOR5'
        (X) = 3; (STMT);                                                      \
                      ^
sha3/keccak.c:59:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:41:11: note: expanded from macro 'FOR5'
        (X) = 4; (STMT);                                                      \
                 ^
sha3/keccak.c:59:10: note: '{' token is here
        FOR5(y, {
                ^
sha3/keccak.c:41:12: note: expanded from macro 'FOR5'
        (X) = 4; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:65:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        });
        ^
sha3/keccak.c:41:12: note: expanded from macro 'FOR5'
        (X) = 4; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:59:2: note: ')' token is here
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:41:16: note: expanded from macro 'FOR5'
        (X) = 4; (STMT);                                                      \
                      ^
sha3/keccak.c:66:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:37:11: note: expanded from macro 'FOR5'
        (X) = 0; (STMT);                                                      \
                 ^
sha3/keccak.c:66:10: note: '{' token is here
        FOR5(y, {
                ^
sha3/keccak.c:37:12: note: expanded from macro 'FOR5'
        (X) = 0; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:72:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        });
        ^
sha3/keccak.c:37:12: note: expanded from macro 'FOR5'
        (X) = 0; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:66:2: note: ')' token is here
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:37:16: note: expanded from macro 'FOR5'
        (X) = 0; (STMT);                                                      \
                      ^
sha3/keccak.c:66:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:38:11: note: expanded from macro 'FOR5'
        (X) = 1; (STMT);                                                      \
                 ^
sha3/keccak.c:66:10: note: '{' token is here
        FOR5(y, {
                ^
sha3/keccak.c:38:12: note: expanded from macro 'FOR5'
        (X) = 1; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:72:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        });
        ^
sha3/keccak.c:38:12: note: expanded from macro 'FOR5'
        (X) = 1; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:66:2: note: ')' token is here
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:38:16: note: expanded from macro 'FOR5'
        (X) = 1; (STMT);                                                      \
                      ^
sha3/keccak.c:66:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:39:11: note: expanded from macro 'FOR5'
        (X) = 2; (STMT);                                                      \
                 ^
sha3/keccak.c:66:10: note: '{' token is here
        FOR5(y, {
                ^
sha3/keccak.c:39:12: note: expanded from macro 'FOR5'
        (X) = 2; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:72:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        });
        ^
sha3/keccak.c:39:12: note: expanded from macro 'FOR5'
        (X) = 2; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:66:2: note: ')' token is here
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:39:16: note: expanded from macro 'FOR5'
        (X) = 2; (STMT);                                                      \
                      ^
sha3/keccak.c:66:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:40:11: note: expanded from macro 'FOR5'
        (X) = 3; (STMT);                                                      \
                 ^
sha3/keccak.c:66:10: note: '{' token is here
        FOR5(y, {
                ^
sha3/keccak.c:40:12: note: expanded from macro 'FOR5'
        (X) = 3; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:72:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        });
        ^
sha3/keccak.c:40:12: note: expanded from macro 'FOR5'
        (X) = 3; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:66:2: note: ')' token is here
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:40:16: note: expanded from macro 'FOR5'
        (X) = 3; (STMT);                                                      \
                      ^
sha3/keccak.c:66:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:41:11: note: expanded from macro 'FOR5'
        (X) = 4; (STMT);                                                      \
                 ^
sha3/keccak.c:66:10: note: '{' token is here
        FOR5(y, {
                ^
sha3/keccak.c:41:12: note: expanded from macro 'FOR5'
        (X) = 4; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:72:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        });
        ^
sha3/keccak.c:41:12: note: expanded from macro 'FOR5'
        (X) = 4; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:66:2: note: ')' token is here
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:41:16: note: expanded from macro 'FOR5'
        (X) = 4; (STMT);                                                      \
                      ^
sha3/keccak.c:73:24: warning: pragma diagnostic pop could not pop, no matching push [-Wunknown-pragmas]
#pragma GCC diagnostic pop
                       ^
sha3/keccak.c:119:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:37:11: note: expanded from macro 'FOR5'
        (X) = 0; (STMT);                                                      \
                 ^
sha3/keccak.c:119:10: note: '{' token is here
        FOR5(y, {
                ^
sha3/keccak.c:37:12: note: expanded from macro 'FOR5'
        (X) = 0; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:130:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        });
        ^
sha3/keccak.c:37:12: note: expanded from macro 'FOR5'
        (X) = 0; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:119:2: note: ')' token is here
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:37:16: note: expanded from macro 'FOR5'
        (X) = 0; (STMT);                                                      \
                      ^
sha3/keccak.c:119:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:38:11: note: expanded from macro 'FOR5'
        (X) = 1; (STMT);                                                      \
                 ^
sha3/keccak.c:119:10: note: '{' token is here
        FOR5(y, {
                ^
sha3/keccak.c:38:12: note: expanded from macro 'FOR5'
        (X) = 1; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:130:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        });
        ^
sha3/keccak.c:38:12: note: expanded from macro 'FOR5'
        (X) = 1; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:119:2: note: ')' token is here
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:38:16: note: expanded from macro 'FOR5'
        (X) = 1; (STMT);                                                      \
                      ^
sha3/keccak.c:119:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:39:11: note: expanded from macro 'FOR5'
        (X) = 2; (STMT);                                                      \
                 ^
sha3/keccak.c:119:10: note: '{' token is here
        FOR5(y, {
                ^
sha3/keccak.c:39:12: note: expanded from macro 'FOR5'
        (X) = 2; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:130:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        });
        ^
sha3/keccak.c:39:12: note: expanded from macro 'FOR5'
        (X) = 2; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:119:2: note: ')' token is here
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:39:16: note: expanded from macro 'FOR5'
        (X) = 2; (STMT);                                                      \
                      ^
sha3/keccak.c:119:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:40:11: note: expanded from macro 'FOR5'
        (X) = 3; (STMT);                                                      \
                 ^
sha3/keccak.c:119:10: note: '{' token is here
        FOR5(y, {
                ^
sha3/keccak.c:40:12: note: expanded from macro 'FOR5'
        (X) = 3; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:130:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        });
        ^
sha3/keccak.c:40:12: note: expanded from macro 'FOR5'
        (X) = 3; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:119:2: note: ')' token is here
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:40:16: note: expanded from macro 'FOR5'
        (X) = 3; (STMT);                                                      \
                      ^
sha3/keccak.c:119:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:41:11: note: expanded from macro 'FOR5'
        (X) = 4; (STMT);                                                      \
                 ^
sha3/keccak.c:119:10: note: '{' token is here
        FOR5(y, {
                ^
sha3/keccak.c:41:12: note: expanded from macro 'FOR5'
        (X) = 4; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:130:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        });
        ^
sha3/keccak.c:41:12: note: expanded from macro 'FOR5'
        (X) = 4; (STMT);                                                      \
                  ^~~~
sha3/keccak.c:119:2: note: ')' token is here
        FOR5(y, {
        ^~~~~~~~~
sha3/keccak.c:41:16: note: expanded from macro 'FOR5'
        (X) = 4; (STMT);                                                      \
                      ^
sha3/keccak.c:131:24: warning: pragma diagnostic pop could not pop, no matching push [-Wunknown-pragmas]
#pragma GCC diagnostic pop
                       ^
32 warnings generated.
gcc -O3 -c xxhash/xxhash.c -o xxhash.o
g++ -O3 -c util.c -o util.o
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
util.c:104:2: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
        sprintf((char*) (buffer + offset),"%.2x",c);
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
util.c:116:2: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
        sprintf((char*) (dst + offset),"%.2x",c);
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
2 warnings generated.
g++ -m64 -mssse3 -Wno-unused-result -Wno-write-strings -O2 -c secp256k1/Int.cpp -o Int.o
secp256k1/Int.cpp:963:4: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
          sprintf(bStr, "%08X", bits[i]);
          ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
secp256k1/Int.cpp:982:7: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
      sprintf(bStr, "0x%" PRIx64  "ULL", bits64[i]);
      ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
secp256k1/Int.cpp:985:7: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
      sprintf(bStr, "0ULL");
      ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
3 warnings generated.
g++ -m64 -mssse3 -Wno-unused-result -Wno-write-strings -O2 -c secp256k1/Point.cpp -o Point.o
g++ -m64 -mssse3 -Wno-unused-result -Wno-write-strings -O2 -c secp256k1/SECP256K1.cpp -o SECP256K1.o
g++ -m64 -mssse3 -Wno-unused-result -Wno-write-strings -O2 -c secp256k1/IntMod.cpp -o IntMod.o
secp256k1/IntMod.cpp:862:4: warning: "GCC lass than 7.3 detected, upgrade gcc to get best perfromance" [-W#warnings]
  #warning "GCC lass than 7.3 detected, upgrade gcc to get best perfromance"
   ^
secp256k1/IntMod.cpp:924:4: warning: "GCC lass than 7.3 detected, upgrade gcc to get best perfromance" [-W#warnings]
  #warning "GCC lass than 7.3 detected, upgrade gcc to get best perfromance"
   ^
secp256k1/IntMod.cpp:984:4: warning: "GCC lass than 7.3 detected, upgrade gcc to get best perfromance" [-W#warnings]
  #warning "GCC lass than 7.3 detected, upgrade gcc to get best perfromance"
   ^
3 warnings generated.
g++ -m64 -mssse3 -Wno-unused-result -Wno-write-strings -O2 -c secp256k1/Random.cpp -o Random.o
g++ -m64 -mssse3 -Wno-unused-result -Wno-write-strings -O2 -c secp256k1/IntGroup.cpp -o IntGroup.o
g++ -m64 -mssse3 -Wno-write-strings -O2 -o hash/ripemd160.o -c hash/ripemd160.cpp
hash/ripemd160.cpp:313:5: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
    sprintf(buf + i * 2, "%02x", (int)digest[i]);
    ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
g++ -m64 -mssse3 -Wno-write-strings -O2 -o hash/sha256.o -c hash/sha256.cpp
hash/sha256.cpp:498:9: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
        sprintf(buf+i*2,"%02x",digest[i]);
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
g++ -m64 -mssse3 -Wno-write-strings -O2 -o hash/ripemd160_sse.o -c hash/ripemd160_sse.cpp
g++ -m64 -mssse3 -Wno-write-strings -O2 -o hash/sha256_sse.o -c hash/sha256_sse.cpp
g++ -o keyhunt keyhunt.cpp base58.o rmd160.o  hash/ripemd160.o hash/ripemd160_sse.o hash/sha256.o hash/sha256_sse.o bloom.o oldbloom.o xxhash.o util.o Int.o  Point.o SECP256K1.o  IntMod.o  Random.o IntGroup.o sha3.o keccak.o  -lm -lpthread
keyhunt.cpp:210:26: error: expected ';' after top level declarator
const char *bsgs_modes[5] {"secuential","backward","both","random","dance"};
                         ^
                         ;
keyhunt.cpp:545:60: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
                                        fprintf(stderr,"[E] Invalid Minikey length %i : %s\n",strlen(optarg),optarg);
                                                                                   ~~         ^~~~~~~~~~~~~~
                                                                                   %lu
keyhunt.cpp:2003:52: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                                if(FLAGDEBUG) printf("[D] THREADCYCLES: %lu\n",THREADCYCLES);
                                                                        ~~~    ^~~~~~~~~~~~
                                                                        %llu
keyhunt.cpp:2006:52: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                                        if(FLAGDEBUG) printf("[D] PERTHREAD_R: %lu\n",PERTHREAD_R);
                                                                               ~~~    ^~~~~~~~~~~
                                                                               %llu
keyhunt.cpp:2009:58: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                                printf("\r[+] processing %lu/%lu bP points : %i%%\r",FINISHED_ITEMS,bsgs_m,(int) (((double)FINISHED_ITEMS/(double)bsgs_m)*100));
                                                         ~~~                         ^~~~~~~~~~~~~~
                                                         %llu
keyhunt.cpp:2009:73: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                                printf("\r[+] processing %lu/%lu bP points : %i%%\r",FINISHED_ITEMS,bsgs_m,(int) (((double)FINISHED_ITEMS/(double)bsgs_m)*100));
                                                             ~~~                                    ^~~~~~
                                                             %llu
keyhunt.cpp:2067:60: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                                                printf("\r[+] processing %lu/%lu bP points : %i%%\r",FINISHED_ITEMS,bsgs_m2,(int) (((double)FINISHED_ITEMS/(double)bsgs_m2)*100));
                                                                         ~~~                         ^~~~~~~~~~~~~~
                                                                         %llu
keyhunt.cpp:2067:75: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                                                printf("\r[+] processing %lu/%lu bP points : %i%%\r",FINISHED_ITEMS,bsgs_m2,(int) (((double)FINISHED_ITEMS/(double)bsgs_m2)*100));
                                                                             ~~~                                    ^~~~~~~
                                                                             %llu
keyhunt.cpp:2092:64: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                                printf("\r[+] processing %lu/%lu bP points : 100%%     \n",bsgs_m2,bsgs_m2);
                                                         ~~~                               ^~~~~~~
                                                         %llu
keyhunt.cpp:2092:72: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                                printf("\r[+] processing %lu/%lu bP points : 100%%     \n",bsgs_m2,bsgs_m2);
                                                             ~~~                                   ^~~~~~~
                                                             %llu
keyhunt.cpp:2117:52: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                                if(FLAGDEBUG) printf("[D] THREADCYCLES: %lu\n",THREADCYCLES);
                                                                        ~~~    ^~~~~~~~~~~~
                                                                        %llu
keyhunt.cpp:2120:52: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                                        if(FLAGDEBUG) printf("[D] PERTHREAD_R: %lu\n",PERTHREAD_R);
                                                                               ~~~    ^~~~~~~~~~~
                                                                               %llu
keyhunt.cpp:2123:58: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                                printf("\r[+] processing %lu/%lu bP points : %i%%\r",FINISHED_ITEMS,bsgs_m,(int) (((double)FINISHED_ITEMS/(double)bsgs_m)*100));
                                                         ~~~                         ^~~~~~~~~~~~~~
                                                         %llu
keyhunt.cpp:2123:73: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                                printf("\r[+] processing %lu/%lu bP points : %i%%\r",FINISHED_ITEMS,bsgs_m,(int) (((double)FINISHED_ITEMS/(double)bsgs_m)*100));
                                                             ~~~                                    ^~~~~~
                                                             %llu
keyhunt.cpp:2180:60: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                                                printf("\r[+] processing %lu/%lu bP points : %i%%\r",FINISHED_ITEMS,bsgs_m,(int) (((double)FINISHED_ITEMS/(double)bsgs_m)*100));
                                                                         ~~~                         ^~~~~~~~~~~~~~
                                                                         %llu
keyhunt.cpp:2180:75: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                                                printf("\r[+] processing %lu/%lu bP points : %i%%\r",FINISHED_ITEMS,bsgs_m,(int) (((double)FINISHED_ITEMS/(double)bsgs_m)*100));
                                                                             ~~~                                    ^~~~~~
                                                                             %llu
keyhunt.cpp:2205:64: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                                printf("\r[+] processing %lu/%lu bP points : 100%%     \n",bsgs_m,bsgs_m);
                                                         ~~~                               ^~~~~~
                                                         %llu
keyhunt.cpp:2205:71: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                                printf("\r[+] processing %lu/%lu bP points : 100%%     \n",bsgs_m,bsgs_m);
                                                             ~~~                                  ^~~~~~
                                                             %llu
keyhunt.cpp:2244:42: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
                        printf("[+] Sorting %lu elements... ",bsgs_m3);
                                            ~~~               ^~~~~~~
                                            %llu
keyhunt.cpp:2591:7: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
                                                sprintf(buffer,"[+] Total %s keys in %s seconds: %s keys/s\n",str_total,str_seconds,str_pretotal);
                                                ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
keyhunt.cpp:2594:7: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
                                                sprintf(buffer,"\r[+] Total %s keys in %s seconds: %s keys/s\r",str_total,str_seconds,str_pretotal);
                                                ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
keyhunt.cpp:2613:7: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
                                                sprintf(buffer,"[+] Total %s keys in %s seconds: ~%s %s (%s keys/s)\n",str_total,str_seconds,str_divpretotal,str_limits_prefixs[salir ? i : i-1],str_pretotal);
                                                ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
keyhunt.cpp:2617:8: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
                                                        sprintf(buffer,"\r[+] Total %s keys in %s seconds: ~%s %s (%s keys/s)\r",str_total,str_seconds,str_divpretotal,str_limits_prefixs[salir ? i : i-1],str_pretotal);
                                                        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
keyhunt.cpp:2620:8: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
                                                        sprintf(buffer,"\r[+] Total %s keys in %s seconds: ~%s %s (%s keys/s)\r",str_total,str_seconds,str_divpretotal,str_limits_prefixs[salir ? i : i-1],str_pretotal);
                                                        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
23 warnings and 1 error generated.
make: *** [default] Error 1
mike@macbook albertobsd--keyhunt % 
mcauser commented 1 year ago

Got past the error. Still a few warnings to fix. https://github.com/albertobsd/keyhunt/pull/202

albertobsd commented 1 year ago

Did you tested if it works properly, i mean it hit the examples keys?

mcauser commented 1 year ago

Did you tested if it works properly, i mean it hit the examples keys?

Yep, using PR #202

mike@macbook keyhunt % ./keyhunt -m address -f tests/1to32.txt -r 1:FFFFFFFF
[+] Version 0.2.211117 SSE Trick or treat ¡Beta!, developed by AlbertoBSD
[+] Mode address
[+] Opening file tests/1to32.txt
[+] Setting search for btc adddress
[+] N = 0x100000000
[+] Range 
[+] -- from : 0x1
[+] -- to   : 0xffffffff
[+] Allocating memory for 32 elements: 0.00 MB
[+] Bloom filter for 32 elements.
[+] Loading data to the bloomfilter total: 0.00 MB
[+] Bloomfilter completed
[+] Sorting data ... done! 32 values were loaded and sorted
Base key: 1     
HIT!! Private Key: 1
pubkey: 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
address: 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH

HIT!! Private Key: 3
pubkey: 02f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9
address: 1CUNEBjYrCn2y1SdiUMohaKUi4wpP326Lb

HIT!! Private Key: 7
pubkey: 025cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc
address: 19ZewH8Kk1PDbSNdJ97FP4EiCjTRaZMZQA

HIT!! Private Key: 8
pubkey: 022f01e5e15cca351daff3843fb70f3c2f0a1bdd05e5af888a67784ef3e10a2a01
address: 1EhqbyUMvvs7BfL8goY6qcPbD6YKfPqb7e

HIT!! Private Key: 15
pubkey: 02352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5
address: 1E6NuFjCi27W5zoXg8TRdcSRq84zJeBW3k

HIT!! Private Key: 31
pubkey: 03f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530
address: 1PitScNLyp2HCygzadCh7FveTnfmpPbfp8

HIT!! Private Key: 4c
pubkey: 0296516a8f65774275278d0d7420a88df0ac44bd64c7bae07c3fe397c5b3300b23
address: 1McVt1vMtCC7yn5b9wgX1833yCcLXzueeC
albertobsd commented 1 year ago

Nice, i like you chages because they are just a few ones... but if I put they directly then there are some errors for Linux users:

g++ -o keyhunt keyhunt.cpp base58.o rmd160.o  hash/ripemd160.o hash/ripemd160_sse.o hash/sha256.o hash/sha256_sse.o bloom.o oldbloom.o xxhash.o util.o Int.o  Point.o SECP256K1.o  IntMod.o  Random.o IntGroup.o sha3.o keccak.o  -lm -lpthread -pthreads
g++: error: unrecognized command line option ‘-pthreads’; did you mean ‘-pthread’?
make: *** [Makefile:20: default] Error 1

So I prefer to put them in a separate Branch just like you did osx but instead of go to the main branch you can pull it to the new branch that i create https://github.com/albertobsd/keyhunt/tree/osx ?

albertobsd commented 1 year ago

Never mind i already check how to do it, thank you very much