clang -O2 -Wall -Wextra uselocale.c -o uselocale -D_GNU_SOURCE -D_BSD_SOURCE -D_ALL_SOURCE -D_DEFAULT_SOURCE -lm -lintl uselocale.c:12:24: warning: implicit declaration of function 'uselocale' is invalid in C99 [-Wimplicit-function-declaration] locale_t old_locale = uselocale(locale); ^ uselocale.c:12:11: warning: incompatible integer to pointer conversion initializing 'locale_t' (aka 'struct _locale *') with an expression of type 'int' [-Wint-conversion] locale_t old_locale = uselocale(locale); ^ ~~~~~~~~~~~~~~~~~ uselocale.c:15:13: warning: incompatible integer to pointer conversion assigning to 'locale_t' (aka 'struct _locale *') from 'int' [-Wint-conversion] old_locale = uselocale((locale_t) 0); ^ ~~~~~~~~~~~~~~~~~~~~~~~ 3 warnings generated. ../out/minix/basic/uselocale.o: In function `main': uselocale.c:(.text+0x31d): undefined reference to `uselocale' uselocale.c:(.text+0x332): undefined reference to `uselocale' clang: error: linker command failed with exit code 1 (use -v to see invocation)