cc -pthread -Wall -Wextra freelocale.c -o freelocale -D_GNU_SOURCE -D_BSD_SOURCE -D_ALL_SOURCE -D_DEFAULT_SOURCE -lm -lpthread -liconv freelocale.c:9:2: error: use of undeclared identifier 'locale_t' locale_t locale = newlocale(LC_ALL_MASK, "C", (locale_t) 0); ^ freelocale.c:10:18: error: use of undeclared identifier 'locale_t' if ( locale == (locale_t) 0 ) ^ freelocale.c:10:7: error: use of undeclared identifier 'locale' if ( locale == (locale_t) 0 ) ^ freelocale.c:12:2: error: implicit declaration of function 'freelocale' is invalid in C99 [-Werror,-Wimplicit-function-declaration] freelocale(locale); ^ freelocale.c:12:2: note: did you mean 'setlocale'? /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/locale.h:53:8: note: 'setlocale' declared here char *setlocale(int, const char *); ^ freelocale.c:12:13: error: use of undeclared identifier 'locale' freelocale(locale); ^ 5 errors generated.