cc -pthread -Wall -Wextra -Werror=implicit-function-declaration unistd/linkat.c -o unistd/linkat -D_GNU_SOURCE -D_BSD_SOURCE -D_ALL_SOURCE -D_DEFAULT_SOURCE -lm -lpthread -lrt -lintl -liconv relibc getrlimit(3, 0x7ffffffffc80): not implemented relibc getrlimit(3, 0x7ffffffffba0): not implemented relibc getrlimit(9, 0x7ffffffffb60): not implemented relibc getrlimit(9, 0x7ffffffffb90): not implemented relibc getrlimit(5, 0x7ffffffffb90): not implemented relibc getrlimit(9, 0x7ffffffffb60): not implemented unistd/linkat.c: In function 'main': unistd/linkat.c:48:22: error: implicit declaration of function 'openat'; did you mean 'open'? [-Werror=implicit-function-declaration] 48 | int src_fd = openat(tmpdir_fd, "a", O_WRONLY | O_CREAT, 0600); | ^~~~~~ | open unistd/linkat.c:55:14: error: implicit declaration of function 'linkat'; did you mean 'link'? [-Werror=implicit-function-declaration] 55 | if ( linkat(tmpdir_fd, "a", tmpdir_fd, "b", AT_SYMLINK_FOLLOW) < 0 ) | ^~~~~~ | link unistd/linkat.c:55:53: error: 'AT_SYMLINK_FOLLOW' undeclared (first use in this function); did you mean 'AT_SYMLINK_NOFOLLOW'? 55 | if ( linkat(tmpdir_fd, "a", tmpdir_fd, "b", AT_SYMLINK_FOLLOW) < 0 ) | ^~~~~~~~~~~~~~~~~ | AT_SYMLINK_NOFOLLOW unistd/linkat.c:55:53: note: each undeclared identifier is reported only once for each function it appears in unistd/linkat.c:58:17: error: implicit declaration of function 'unlinkat'; did you mean 'unlink'? [-Werror=implicit-function-declaration] 58 | unlinkat(tmpdir_fd, "a", 0); | ^~~~~~~~ | unlink cc1: some warnings being treated as errors