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] 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' 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'? 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 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)') [-Werror,-Wincompatible-function-pointer-types] int (*foo)(struct pollfd [], nfds_t, const struct timespec *restrict, const sigset_t *restrict) = ppoll; ^ ~~~~~ 4 errors generated.