Hello,

In ctype.h I see the following:

```
  /* CRT stuff */
#if 1
  extern const unsigned char __newclmap[];
  extern const unsigned char __newcumap[];
  extern pthreadlocinfo __ptlocinfo;
  extern pthreadmbcinfo __ptmbcinfo;
  extern int __globallocalestatus;
  extern int __locale_changed;
  extern struct threadlocaleinfostruct __initiallocinfo;
  extern _locale_tstruct __initiallocalestructinfo;
  pthreadlocinfo __cdecl __updatetlocinfo(void);
  pthreadmbcinfo __cdecl __updatetmbcinfo(void);
#endif
```

and also in mbctype.h:

```
  extern pthreadmbcinfo __ptmbcinfo;
  extern int __globallocalestatus;
  extern int __locale_changed;
  extern struct threadmbcinfostruct __initialmbcinfo;
  pthreadmbcinfo __cdecl __updatetmbcinfo(void);
```

I tried using `git grep` to find if they're used anywhere and I only found 
reference to __globallocalestatus from mingw-w64-crt/crt/xthdloc.c.

Any idea what are these? Can we remove them? I asked Pali if he knows what are 
these, and we think they were supposed to be used with static CRT, which is not 
supported by mingw-w64.

I ran `dumpbin -symbols` on static UCRT installed with Windows SDK and it 
contains __newclmap and __newcumap symbols. Also note that they are missing 
_CRTIMP, which seems like another sign that they are really from static CRT.

- Kirill Makurin

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to