cc -pthread -Wall -Wextra -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations string/strerror_l.c -o string/strerror_l -D_POSIX_C_SOURCE=202405L -lm -lpthread -liconv string/strerror_l.c:5:19: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int] 5 | char *(*foo)(int, locale_t) = strerror_l; | ^ | int string/strerror_l.c:5:31: error: use of undeclared identifier 'strerror_l'; did you mean 'strerror_r'? 5 | char *(*foo)(int, locale_t) = strerror_l; | ^~~~~~~~~~ | strerror_r /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_string.h:116:6: note: 'strerror_r' declared here 116 | int strerror_r(int __errnum, char *__strerrbuf, size_t __buflen); | ^ string/strerror_l.c:5:9: error: incompatible function pointer types initializing 'char *(*)(int, int)' with an expression of type 'int (int, char *, size_t)' (aka 'int (int, char *, unsigned long)') [-Wincompatible-function-pointer-types] 5 | char *(*foo)(int, locale_t) = strerror_l; | ^ ~~~~~~~~~~ 3 errors generated.