> 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.