cc -pthread -Wall -Wextra -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations poll/ppoll.c -o poll/ppoll -D_POSIX_C_SOURCE=202405L -lm -lpthread -liconv poll/ppoll.c:5:51: error: declaration of 'struct timespec' will not be visible outside of this function [-Werror,-Wvisibility] 5 | int (*foo)(struct pollfd [], nfds_t, const struct timespec *restrict, const sigset_t *restrict) = ppoll; | ^ poll/ppoll.c:5:77: error: unknown type name 'sigset_t' 5 | int (*foo)(struct pollfd [], nfds_t, const struct timespec *restrict, const sigset_t *restrict) = ppoll; | ^ poll/ppoll.c:5:99: error: use of undeclared identifier 'ppoll'; did you mean 'poll'? 5 | int (*foo)(struct pollfd [], nfds_t, const struct timespec *restrict, const sigset_t *restrict) = ppoll; | ^~~~~ | poll /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/poll.h:113:12: note: 'poll' declared here 113 | extern int poll(struct pollfd *, nfds_t, int) __DARWIN_ALIAS_C(poll); | ^ poll/ppoll.c:5:7: error: incompatible function pointer types initializing 'int (*)(struct pollfd *, nfds_t, const struct timespec *restrict, const int *restrict)' (aka 'int (*)(struct pollfd *, unsigned int, const struct timespec *restrict, const int *restrict)') with an expression of type 'int (struct pollfd *, nfds_t, int)' (aka 'int (struct pollfd *, unsigned int, int)') [-Wincompatible-function-pointer-types] 5 | int (*foo)(struct pollfd [], nfds_t, const struct timespec *restrict, const sigset_t *restrict) = ppoll; | ^ ~~~~~ 4 errors generated.