cc -pthread -Wall -Wextra duplocale.c -o duplocale -D_GNU_SOURCE -D_BSD_SOURCE -D_ALL_SOURCE -D_DEFAULT_SOURCE -lm -lpthread -liconv duplocale.c:9:2: error: use of undeclared identifier 'locale_t' locale_t locale1 = duplocale(LC_GLOBAL_LOCALE); ^ duplocale.c:10:19: error: use of undeclared identifier 'locale_t' if ( locale1 == (locale_t) 0 ) ^ duplocale.c:10:7: error: use of undeclared identifier 'locale1' if ( locale1 == (locale_t) 0 ) ^ duplocale.c:12:2: error: use of undeclared identifier 'locale_t' locale_t locale2 = duplocale(locale1); ^ duplocale.c:13:19: error: use of undeclared identifier 'locale_t' if ( locale2 == (locale_t) 0 ) ^ duplocale.c:13:7: error: use of undeclared identifier 'locale2' if ( locale2 == (locale_t) 0 ) ^ duplocale.c:15:2: error: use of undeclared identifier 'locale_t' locale_t locale3 = newlocale(LC_ALL_MASK, "C", (locale_t) 0); ^ duplocale.c:16:19: error: use of undeclared identifier 'locale_t' if ( locale3 == (locale_t) 0 ) ^ duplocale.c:16:7: error: use of undeclared identifier 'locale3' if ( locale3 == (locale_t) 0 ) ^ duplocale.c:18:2: error: use of undeclared identifier 'locale_t' locale_t locale4 = duplocale(locale3); ^ duplocale.c:19:19: error: use of undeclared identifier 'locale_t' if ( locale4 == (locale_t) 0 ) ^ duplocale.c:19:7: error: use of undeclared identifier 'locale4' if ( locale4 == (locale_t) 0 ) ^ duplocale.c:21:2: error: implicit declaration of function 'freelocale' is invalid in C99 [-Werror,-Wimplicit-function-declaration] freelocale(locale1); ^ duplocale.c:21: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 *); ^ duplocale.c:21:13: error: use of undeclared identifier 'locale1' freelocale(locale1); ^ duplocale.c:22:13: error: use of undeclared identifier 'locale2' freelocale(locale2); ^ duplocale.c:23:13: error: use of undeclared identifier 'locale3' freelocale(locale3); ^ duplocale.c:24:13: error: use of undeclared identifier 'locale4' freelocale(locale4); ^ 17 errors generated.