albertobsd / keyhunt

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

GRND_NONBLOCK is an undeclared identifier...? #300

Open JunChung11 opened 4 months ago

JunChung11 commented 4 months ago

Hello, I am trying to get through the first step of compiling on a macbook and I am getting the error stating that GRND_NONBLOCK from secp256k1/Random.cpp:130:56 is an undeclared identifier. Am I doing something wrong? I am fairly new to running something as complicated as this so please bear with me :)

Here is the full output I received:

g++ -m64 -march=native -mtune=native -mssse3 -Wall -Wextra -Wno-deprecated-copy -Ofast -ftree-vectorize -flto -c oldbloom/bloom.cpp -o oldbloom.o
g++ -m64 -march=native -mtune=native -mssse3 -Wall -Wextra -Wno-deprecated-copy -Ofast -ftree-vectorize -flto -c bloom/bloom.cpp -o bloom.o
gcc -m64 -march=native -mtune=native -mssse3 -Wall -Wextra -Wno-unused-parameter -Ofast -ftree-vectorize -c base58/base58.c -o base58.o
gcc -m64 -march=native -mtune=native -mssse3 -Wall -Wextra -Ofast -ftree-vectorize -c rmd160/rmd160.c -o rmd160.o
g++ -m64 -march=native -mtune=native -mssse3 -Wall -Wextra -Wno-deprecated-copy -Ofast -ftree-vectorize -c sha3/sha3.c -o sha3.o
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
g++ -m64 -march=native -mtune=native -mssse3 -Wall -Wextra -Wno-deprecated-copy -Ofast -ftree-vectorize -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 -m64 -march=native -mtune=native -mssse3 -Wall -Wextra -Ofast -ftree-vectorize -c xxhash/xxhash.c -o xxhash.o
g++ -m64 -march=native -mtune=native -mssse3 -Wall -Wextra -Wno-deprecated-copy -Ofast -ftree-vectorize -c util.c -o util.o
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
g++ -m64 -march=native -mtune=native -mssse3 -Wall -Wextra -Wno-deprecated-copy -Ofast -ftree-vectorize -c secp256k1/Int.cpp -o Int.o
g++ -m64 -march=native -mtune=native -mssse3 -Wall -Wextra -Wno-deprecated-copy -Ofast -ftree-vectorize -c secp256k1/Point.cpp -o Point.o
g++ -m64 -march=native -mtune=native -mssse3 -Wall -Wextra -Wno-deprecated-copy -Ofast -ftree-vectorize -c secp256k1/SECP256K1.cpp -o SECP256K1.o
g++ -m64 -march=native -mtune=native -mssse3 -Wall -Wextra -Wno-deprecated-copy -Ofast -ftree-vectorize -c secp256k1/IntMod.cpp -o IntMod.o
secp256k1/IntMod.cpp:859: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:921: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:981: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 -march=native -mtune=native -mssse3 -Wall -Wextra -Wno-deprecated-copy -Ofast -ftree-vectorize -flto -c secp256k1/Random.cpp -o Random.o
secp256k1/Random.cpp:130:56: error: use of undeclared identifier 'GRND_NONBLOCK'
        int bytes_read = getrandom(&r, sizeof(unsigned long), GRND_NONBLOCK );
                                                              ^
1 error generated.
make: *** [default] Error 1
albertobsd commented 4 months ago

Hi sadly I don't have a Mac to check it.

Please follow one of those open issues to see if you can fix your problem:

For Mac

https://github.com/albertobsd/keyhunt/issues/244 https://github.com/albertobsd/keyhunt/issues/268 https://github.com/albertobsd/keyhunt/issues/137

JunChung11 commented 4 months ago

Okay, so I looked through all three and they don't specifically mention how to solve the GRND_NONBLOCK error so I resorted to using the legacy. I've encountered the same errors mentioned in #268 so I updated as shown and was able to successfully compile.

The GRND_NONBLOCK error I ran into may be an issue on my side as the macbook I'm using is like 7 years old... idk, I'll have to continue to try and find out a way around that error.