> It looks like it's the call to setlocale() that creates the auxiliary > threads, and the call to gettext() that forces the artificial crash.
Yep, that's my understanding. > So any call to gettext() in the parent process before any fork would be > sufficient to complete the initialization? It does appear that way; running the following (a modification of the repro I put to the `gettext` list): ``` #include <libintl.h> #include <stdlib.h> #include <unistd.h> int main() { unsetenv("LANG"); setlocale(LC_ALL, ""); gettext(""); if (fork()== 0) { gettext("test"); } } ``` causes the issue to no longer trigger. Note that `LANG` needs to be cleared before the call to `setlocale` to trigger the issue.