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

GRND_NONBLOCK is an undeclared identifier...? #300

Open
JunChung11 opened this issue Apr 9, 2024 · 2 comments
Open

GRND_NONBLOCK is an undeclared identifier...? #300

JunChung11 opened this issue Apr 9, 2024 · 2 comments

Comments

@JunChung11
Copy link

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
Copy link
Owner

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

#244
#268
#137

@JunChung11
Copy link
Author

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.

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

2 participants