cc -O2 -pipe -pthread -Wall -Wextra getlocalename_l.c -o getlocalename_l -D_GNU_SOURCE -D_BSD_SOURCE -D_ALL_SOURCE -D_DEFAULT_SOURCE -lm -lpthread getlocalename_l.c:9:21: warning: call to undeclared function 'getlocalename_l'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] const char* name = getlocalename_l(LC_COLLATE, LC_GLOBAL_LOCALE); ^ getlocalename_l.c:9:14: warning: incompatible integer to pointer conversion initializing 'const char *' with an expression of type 'int' [-Wint-conversion] const char* name = getlocalename_l(LC_COLLATE, LC_GLOBAL_LOCALE); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ getlocalename_l.c:17:7: warning: incompatible integer to pointer conversion assigning to 'const char *' from 'int' [-Wint-conversion] name = getlocalename_l(LC_COLLATE, locale); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 warnings generated. ld: error: undefined symbol: getlocalename_l >>> referenced by getlocalename_l.c >>> ../out/openbsd/basic/getlocalename_l.o:(main) >>> referenced by getlocalename_l.c >>> ../out/openbsd/basic/getlocalename_l.o:(main) cc: error: linker command failed with exit code 1 (use -v to see invocation)