1
2list(APPEND SOURCE_MSVCRT
3#    _CrtCheckMemory.c
4#    _CrtDbgBreak.c
5#    _CrtDbgReport.c
6#    _CrtDbgReportV.c
7#    _CrtDbgReportW.c
8#    _CrtDbgReportWV.c
9#    _CrtDoForAllClientObjects.c
10#    _CrtDumpMemoryLeaks.c
11#    _CrtIsMemoryBlock.c
12#    _CrtIsValidHeapPointer.c
13#    _CrtIsValidPointer.c
14#    _CrtMemCheckpoint.c
15#    _CrtMemDifference.c
16#    _CrtMemDumpAllObjectsSince.c
17#    _CrtMemDumpStatistics.c
18#    _CrtReportBlockType.c
19#    _CrtSetAllocHook.c
20#    _CrtSetBreakAlloc.c
21#    _CrtSetDbgBlockType.c
22#    _CrtSetDbgFlag.c
23#    _CrtSetDumpClient.c
24#    _CrtSetReportFile.c
25#    _CrtSetReportHook.c
26#    _CrtSetReportHook2.c
27#    _CrtSetReportMode.c
28#    _CxxThrowException.c
29#    _Getdays.c
30#    _Getmonths.c
31#    _Gettnames.c
32#    _HUGE.c
33#    _Strftime.c
34#    _XcptFilter.c
35#    __CppXcptFilter.c
36#    __CxxCallUnwindDelDtor.c
37#    __CxxCallUnwindDtor.c
38#    __CxxCallUnwindVecDtor.c
39#    __CxxDetectRethrow.c
40#    __CxxExceptionFilter.c
41#    __CxxQueryExceptionSize.c
42#    __CxxRegisterExceptionObject
43#    __CxxUnregisterExceptionObject
44#    __DestructExceptionObject
45#    __RTCastToVoid.c MSVCRT___RTCastToVoid
46#    __RTDynamicCast.c MSVCRT___RTDynamicCast
47#    __RTtypeid.c MSVCRT___RTtypeid
48#    __STRINGTOLD.c
49#    ___lc_codepage_func.c
50#    ___lc_collate_cp_func.c
51#    ___lc_handle_func.c
52#    ___mb_cur_max_func.c MSVCRT___mb_cur_max_func
53#    ___setlc_active_func.c
54#    ___unguarded_readlc_active_add_func.c
55#    __argc
56#    __argv
57#    __badioinfo __badioinfo
58#    __crtCompareStringA.c kernel32.CompareStringA
59#    __crtCompareStringW.c kernel32.CompareStringW
60#    __crtGetLocaleInfoW.c kernel32.GetLocaleInfoW
61#    __crtGetStringTypeW.c
62#    __crtLCMapStringA.c
63#    __crtLCMapStringW
64#    __daylight.c __p__daylight
65#    __dllonexit.c
66#    __doserrno.c
67#    __fpecode.c
68#    __get_app_type.c
69#    __getmainargs.c
70#    __initenv
71#    __iob_func.c
72#    __isascii.c
73#    __iscsym.c
74#    __iscsymf.c
75#    __lc_codepage MSVCRT___lc_codepage
76#    __lc_collate # not in XP / 7
77#    __lc_collate_cp MSVCRT___lc_collate_cp
78#    __lc_handle MSVCRT___lc_handle
79#    __lconv_init.c
80#    __libm_sse2_acos
81#    __libm_sse2_acosf
82#    __libm_sse2_asin
83#    __libm_sse2_asinf
84#    __libm_sse2_atan
85#    __libm_sse2_atan2
86#    __libm_sse2_atanf
87#    __libm_sse2_cos
88#    __libm_sse2_cosf
89#    __libm_sse2_exp
90#    __libm_sse2_expf
91#    __libm_sse2_log
92#    __libm_sse2_log10
93#    __libm_sse2_log10f
94#    __libm_sse2_logf
95#    __libm_sse2_pow
96#    __libm_sse2_powf
97#    __libm_sse2_sin
98#    __libm_sse2_sinf
99#    __libm_sse2_tan
100#    __libm_sse2_tanf
101#    __mb_cur_max
102#    __pctype_func.c
103#    __pioinfo
104#    __pwctype_func.c
105#    __pxcptinfoptrs.c
106#    __set_app_type.c
107#    __setlc_active
108#    __setusermatherr.c
109#    __strncnt
110#    __threadhandle.c kernel32.GetCurrentThread
111#    __threadid.c kernel32.GetCurrentThreadId
112#    __toascii.c
113#    __uncaught_exception.c
114#    __unDName.c
115#    __unDNameEx.c
116#    __unguarded_readlc_active
117#    __wargv __wargv
118#    __wcserror.c
119#    __wcserror_s.c
120#    __wcsncnt
121#    __wgetmainargs.c
122#    __winitenv
123#    _abnormal_termination.c
124#    _abs64
125#    _access.c
126#    _access_s.c
127#    _acmdln
128#    _aexit_rtn
129#    _aligned_free.c
130#    _aligned_free_dbg
131#    _aligned_malloc.c
132#    _aligned_malloc_dbg
133#    _aligned_offset_malloc.c
134#    _aligned_offset_malloc_dbg
135#    _aligned_offset_realloc.c
136#    _aligned_offset_realloc_dbg
137#    _aligned_realloc.c
138#    _aligned_realloc_dbg
139#    _amsg_exit.c
140#    _assert.c
141#    _atodbl.c
142#    _atodbl_l
143#    _atof_l.c
144#    _atoflt_l
145#    -ret64 _atoi64.c
146#    _atoi64_l
147#    _atoi_l
148#    _atol_l
149#    _atoldbl.c
150#    _atoldbl_l
151#    _beep.c
152#    _beginthread.c
153#    _beginthreadex.c
154#    _c_exit.c
155#    _cabs.c
156#    _callnewh.c
157#    _calloc_dbg
158#    _cexit.c
159#    _cgets.c
160#    _cgets_s
161#    _cgetws
162#    _cgetws_s
163#    _chdir.c
164#    _chdrive.c
165#    _chgsign.c
166#    _chmod.c
167#    _chsize.c
168#    _chsize_s
169#    _chvalidator
170#    _chvalidator_l
171#    _clearfp.c
172#    _close.c
173#    _commit.c
174#    _commode
175#    _control87.c
176#    _controlfp.c
177#    _controlfp_s.c
178#    _copysign.c
179#    _cprintf.c
180#    _cprintf_l
181#    _cprintf_p
182#    _cprintf_p_l
183#    _cprintf_s
184#    _cprintf_s_l
185#    _cputs.c
186#    _cputws
187#    _creat.c
188#    _crtAssertBusy
189#    _crtBreakAlloc
190#    _crtDbgFlag
191#    _cscanf.c
192#    _cscanf_l.c
193#    _cscanf_s.c
194#    _cscanf_s_l.c
195#    _ctime32.c
196#    _ctime32_s.c
197#    _ctime64.c
198#    _ctime64_s.c
199#    _ctype
200#    _cwait.c
201#    _cwprintf.c
202#    _cwprintf_l
203#    _cwprintf_p
204#    _cwprintf_p_l
205#    _cwprintf_s
206#    _cwprintf_s_l
207#    _cwscanf.c
208#    _cwscanf_l.c
209#    _cwscanf_s.c
210#    _cwscanf_s_l.c
211#    _daylight
212#    _difftime32.c
213#    _difftime64.c
214#    _dstbias
215#    _dup.c
216#    _dup2.c
217#    _ecvt.c
218#    _ecvt_s
219#    _endthread.c
220#    _endthreadex.c
221#    _environ
222#    _eof.c
223#    _errno.c
224#    _execl.c
225#    _execle.c
226#    _execlp.c
227#    _execlpe.c
228#    _execv.c
229#    _execve.c
230#    _execvp.c
231#    _execvpe.c
232#    _exit.c
233#    _expand.c
234#    _expand_dbg
235#    _fcloseall.c
236#    _fcvt.c
237#    _fcvt_s
238#    _fdopen.c
239#    _fgetchar.c
240#    _fgetwchar.c
241#    _filbuf.c
242#    _fileinfo
243#    _filelength.c
244#    -ret64 _filelengthi64.c
245#    _fileno.c
246#    _findclose.c
247#    _findfirst.c
248#    _findfirst64.c
249#    _findfirsti64.c
250#    _findnext.c
251#    _findnext64.c
252#    _findnexti64.c
253#    _finite.c
254#    _flsbuf.c
255#    _flushall.c
256#    _fmode
257#    _fpclass.c
258#    _fpieee_flt.c
259#    _fpreset.c
260#    _fprintf_l
261#    _fprintf_p
262#    _fprintf_p_l
263#    _fprintf_s_l
264#    _fputchar.c
265#    _fputwchar.c
266#    _free_dbg
267#    _freea
268#    _freea_s
269#    _fscanf_l
270#    _fscanf_l.c
271#    _fscanf_s_l.c
272#    _fseeki64.c
273#    _fsopen.c
274#    _fstat.c
275#    _fstat64.c
276#    _fstati64.c
277#    -ret64 _ftelli64.c
278#    _ftime.c
279#    _ftime32.c
280#    _ftime32_s
281#    _ftime64.c
282#    _ftime64_s
283#    _ftol2_sse_excpt
284#    _fullpath.c
285#    _fullpath_dbg
286#    _futime.c
287#    _futime32.c
288#    _futime64.c
289#    _fwprintf_l
290#    _fwprintf_p
291#    _fwprintf_p_l
292#    _fwprintf_s_l
293#    _fwscanf_l.c
294#    _fwscanf_s_l.c
295#    _gcvt.c
296#    _gcvt_s
297#    _get_doserrno.c
298#    _get_environ
299#    _get_errno.c
300#    _get_fileinfo
301#    _get_fmode
302#    _get_heap_handle.c
303#    _get_osfhandle.c
304#    _get_osplatform.c
305#    _get_osver
306#    _get_output_format.c
307#    _get_pgmptr.c
308#    _get_sbh_threshold.c
309#    _get_wenviron
310#    _get_winmajor
311#    _get_winminor
312#    _get_winver
313#    _get_wpgmptr.c
314#    _get_terminate.c
315#    _get_tzname.c
316#    _get_unexpected.c
317#    _getch.c
318#    _getche.c
319#    _getcwd.c
320#    _getdcwd.c
321#    _getdiskfree.c
322#    _getdllprocaddr.c
323#    _getdrive.c
324#    _getdrives.c kernel32.GetLogicalDrives
325#    _getmaxstdio.c
326#    _getmbcp.c
327#    _getpid.c kernel32.GetCurrentProcessId
328#    _getsystime.c
329#    _getw.c
330#    _getwch
331#    _getwche
332#    _getws.c
333#    _gmtime32.c
334#    _gmtime32_s.c
335#    _gmtime64.c
336#    _gmtime64_s.c
337#    _heapadd.c
338#    _heapchk.c
339#    _heapmin.c
340#    _heapset.c
341#    _heapused.c
342#    _heapwalk.c
343#    _hypot.c
344#    _i64toa.c
345#    _i64toa_s.c
346#    _i64tow.c
347#    _i64tow_s.c
348#    _initterm.c
349#    _initterm_e.c
350#    _invalid_parameter.c
351#    _iob
352#    _isalnum_l
353#    _isalpha_l
354#    _isatty.c
355#    _iscntrl_l
356#    _isctype.c
357#    _isctype_l
358#    _isdigit_l
359#    _isgraph_l
360#    _isleadbyte_l
361#    _islower_l
362#    _ismbbalnum.c
363#    _ismbbalnum_l
364#    _ismbbalpha.c
365#    _ismbbalpha_l
366#    _ismbbgraph.c
367#    _ismbbgraph_l
368#    _ismbbkalnum.c
369#    _ismbbkalnum_l
370#    _ismbbkana.c
371#    _ismbbkana_l
372#    _ismbbkprint.c
373#    _ismbbkprint_l
374#    _ismbbkpunct.c
375#    _ismbbkpunct_l
376#    _ismbblead.c
377#    _ismbblead_l
378#    _ismbbprint.c
379#    _ismbbprint_l
380#    _ismbbpunct.c
381#    _ismbbpunct_l
382#    _ismbbtrail.c
383#    _ismbbtrail_l
384#    _ismbcalnum.c
385#    _ismbcalnum_l
386#    _ismbcalpha.c
387#    _ismbcalpha_l
388#    _ismbcdigit.c
389#    _ismbcdigit_l
390#    _ismbcgraph.c
391#    _ismbcgraph_l
392#    _ismbchira.c
393#    _ismbchira_l
394#    _ismbckata.c
395#    _ismbckata_l
396#    _ismbcl0.c
397#    _ismbcl0_l
398#    _ismbcl1.c
399#    _ismbcl1_l
400#    _ismbcl2.c
401#    _ismbcl2_l
402#    _ismbclegal.c
403#    _ismbclegal_l
404#    _ismbclower.c
405#    _ismbclower_l
406#    _ismbcprint.c
407#    _ismbcprint_l
408#    _ismbcpunct.c
409#    _ismbcpunct_l
410#    _ismbcspace.c
411#    _ismbcspace_l
412#    _ismbcsymbol.c
413#    _ismbcsymbol_l
414#    _ismbcupper.c
415#    _ismbcupper_l
416#    _ismbslead.c
417#    _ismbslead_l
418#    _ismbstrail.c
419#    _ismbstrail_l
420#    _isnan.c
421#    _isprint_l
422#    _isspace_l
423#    _isupper_l
424#    _iswalnum_l
425#    _iswalpha_l
426#    _iswcntrl_l
427#    _iswctype_l
428#    _iswdigit_l
429#    _iswgraph_l
430#    _iswlower_l
431#    _iswprint_l
432#    _iswpunct_l
433#    _iswspace_l
434#    _iswupper_l
435#    _iswxdigit_l
436#    _isxdigit_l
437#    _itoa.c
438#    _itoa_s.c
439#    _itow.c
440#    _itow_s.c
441#    _j0.c
442#    _j1.c
443#    _jn.c
444#    _kbhit.c
445#    _lfind.c
446#    _lfind_s
447#    _loaddll.c
448#    _localtime32.c
449#    _localtime32_s.c
450#    _localtime64.c
451#    _localtime64_s.c
452#    _lock.c
453#    _locking.c
454#    _logb.c
455#    _longjmpex.c longjmp
456#    _lrotl.c
457#    _lrotr.c
458#    _lsearch.c
459#    _lsearch_s
460#    _lseek.c
461#    -ret64 _lseeki64.c
462#    _ltoa.c
463#    _ltoa_s.c
464#    _ltow.c
465#    _ltow_s.c
466#    _makepath.c
467#    _makepath_s.c
468#    _malloc_dbg
469#    _mbbtombc.c
470#    _mbbtombc_l
471#    _mbbtype.c
472#    _mbcasemap
473#    _mbccpy .c
474#    _mbccpy_l
475#    _mbccpy_s
476#    _mbccpy_s_l
477#    _mbcjistojms.c
478#    _mbcjistojms_l
479#    _mbcjmstojis.c
480#    _mbcjmstojis_l
481#    _mbclen.c
482#    _mbclen_l
483#    _mbctohira.c
484#    _mbctohira_l
485#    _mbctokata.c
486#    _mbctokata_l
487#    _mbctolower.c
488#    _mbctolower_l
489#    _mbctombb.c
490#    _mbctombb_l
491#    _mbctoupper.c
492#    _mbctoupper_l
493#    _mbctype
494#    _mblen_l
495#    _mbsbtype.c
496#    _mbsbtype_l
497#    _mbscat.c
498#    _mbscat_s
499#    _mbscat_s_l
500#    _mbschr.c
501#    _mbschr_l
502#    _mbscmp.c
503#    _mbscmp_l
504#    _mbscoll.c
505#    _mbscoll_l
506#    _mbscpy.c
507#    _mbscpy_s
508#    _mbscpy_s_l
509#    _mbscspn.c
510#    _mbscspn_l
511#    _mbsdec.c
512#    _mbsdec_l
513#    _mbsdup.c
514#    _strdup_dbg
515#    _mbsicmp.c
516#    _mbsicmp_l
517#    _mbsicoll.c
518#    _mbsicoll_l
519#    _mbsinc.c
520#    _mbsinc_l
521#    _mbslen.c
522#    _mbslen_l
523#    _mbslwr.c
524#    _mbslwr_l
525#    _mbslwr_s
526#    _mbslwr_s_l
527#    _mbsnbcat.c
528#    _mbsnbcat_l
529#    _mbsnbcat_s
530#    _mbsnbcat_s_l
531#    _mbsnbcmp.c
532#    _mbsnbcmp_l
533#    _mbsnbcnt.c
534#    _mbsnbcnt_l
535#    _mbsnbcoll.c
536#    _mbsnbcoll_l
537#    _mbsnbcpy.c
538#    _mbsnbcpy_l
539#    _mbsnbcpy_s.c
540#    _mbsnbcpy_s_l
541#    _mbsnbicmp.c
542#    _mbsnbicmp_l
543#    _mbsnbicoll.c
544#    _mbsnbicoll_l
545#    _mbsnbset.c
546#    _mbsnbset_l
547#    _mbsnbset_s
548#    _mbsnbset_s_l
549#    _mbsncat.c
550#    _mbsncat_l
551#    _mbsncat_s
552#    _mbsncat_s_l
553#    _mbsnccnt.c
554#    _mbsnccnt_l
555#    _mbsncmp.c
556#    _mbsncmp_l
557#    _mbsncoll.c
558#    _mbsncoll_l
559#    _mbsncpy.c
560#    _mbsncpy_l
561#    _mbsncpy_s
562#    _mbsncpy_s_l
563#    _mbsnextc.c
564#    _mbsnextc_l
565#    _mbsnicmp.c
566#    _mbsnicmp_l
567#    _mbsnicoll.c
568#    _mbsnicoll_l
569#    _mbsninc.c
570#    _mbsninc_l
571#    _mbsnlen
572#    _mbsnlen_l
573#    _mbsnset.c
574#    _mbsnset_l
575#    _mbsnset_s
576#    _mbsnset_s_l
577#    _mbspbrk.c
578#    _mbspbrk_l
579#    _mbsrchr.c
580#    _mbsrchr_l
581#    _mbsrev.c
582#    _mbsrev_l
583#    _mbsset.c
584#    _mbsset_l
585#    _mbsset_s
586#    _mbsset_s_l
587#    _mbsspn.c
588#    _mbsspn_l
589#    _mbsspnp.c
590#    _mbsspnp_l
591#    _mbsstr.c
592#    _mbsstr_l
593#    _mbstok.c
594#    _mbstok_l
595#    _mbstok_s
596#    _mbstok_s_l
597#    _mbstowcs_l
598#    _mbstowcs_s_l
599#    _mbstrlen.c
600#    _mbstrlen_l
601#    _mbstrnlen
602#    _mbstrnlen_l
603#    _mbsupr.c
604#    _mbsupr_l
605#    _mbsupr_s
606#    _mbsupr_s_l
607#    _mbtowc_l
608#    _memccpy.c
609#    _memicmp.c
610#    _memicmp_l
611#    _mkdir.c
612#    _mkgmtime.c
613#    _mkgmtime32.c
614#    _mkgmtime64.c
615#    _mktemp.c
616#    _mktemp_s
617#    _mktime32.c
618#    _mktime64.c
619#    _msize.c
620#    _msize_debug
621#    _nextafter.c
622#    _onexit.c
623#    _open.c
624#    _open_osfhandle.c
625#    _osplatform
626#    _osver
627#    _outp.c
628#    _outpd.c
629#    _outpw.c
630#    _pclose.c
631#    _pctype
632#    _pgmptr
633#    _pipe.c
634#    _popen.c
635#    _printf_l
636#    _printf_p
637#    _printf_p_l
638#    _printf_s_l
639#    _purecall.c
640#    _putch.c
641#    _putenv.c
642#    _putenv_s
643#    _putw.c
644#    _putwch.c
645#    _putws.c
646#    _pwctype
647#    _read.c
648#    _realloc_dbg
649#    _resetstkoflw.c
650#    _rmdir.c
651#    _rmtmp.c
652#    _rotl.c
653#    _rotl64
654#    _rotr.c
655#    _rotr64
656#    _scalb.c
657#    _scanf_l.c
658#    _scanf_s_l.c
659#    _scprintf
660#    _scprintf_l
661#    _scprintf_p_l
662#    _scwprintf
663#    _scwprintf_l
664#    _scwprintf_p_l
665#    _searchenv.c
666#    _searchenv_s.c
667#    _set_SSE2_enable
668#    _set_controlfp
669#    _set_doserrno.c
670#    _set_errno.c
671#    _set_error_mode.c
672#    _set_fileinfo
673#    _set_fmode
674#    _set_output_format
675#    _set_sbh_threshold.c
676#    _seterrormode.c
677#    _setmaxstdio.c
678#    _setmbcp.c
679#    _setmode.c
680#    _setsystime.c
681#    _sleep.c
682    _snprintf.c
683#    _snprintf_c
684#    _snprintf_c_l
685#    _snprintf_l
686#    _snprintf_s
687#    _snprintf_s_l
688#    _snscanf
689#    _snscanf_l
690#    _snscanf_s
691#    _snscanf_s_l
692    _snwprintf.c
693#    _snwprintf_l
694#    _snwprintf_s
695#    _snwprintf_s_l
696#    _snwscanf
697#    _snwscanf_l
698#    _snwscanf_s
699#    _snwscanf_s_l
700#    _sopen.c
701#    _sopen_s.c
702#    _spawnl.c
703#    _spawnle.c
704#    _spawnlp.c
705#    _spawnlpe.c
706#    _spawnv.c
707#    _spawnve.c
708#    _spawnvp.c
709#    _spawnvpe.c
710#    _splitpath.c
711#    _splitpath_s
712#    _sprintf_l
713#    _sprintf_p_l
714#    _sprintf_s_l
715#    _sscanf_l.c
716#    _sscanf_s_l.c
717#    _stat.c
718#    _stat64.c
719#    _stati64.c
720#    _statusfp.c
721#    _strcmpi.c
722#    _strcoll_l
723#    _strdate.c
724#    _strdate_s
725#    _strdup.c
726#    _strdup_dbg
727#    _strerror.c
728#    _strerror_s
729#    _stricmp.c
730#    _stricmp_l
731#    _stricoll.c
732#    _stricoll_l
733#    _strlwr.c
734#    _strlwr_l
735#    _strlwr_s
736#    _strlwr_s_l
737#    _strncoll.c
738#    _strncoll_l
739#    _strnicmp.c
740#    _strnicmp_l
741#    _strnicoll.c
742#    _strnicoll_l
743#    _strnset.c
744#    _strnset_s
745#    _strrev.c
746#    _strset.c
747#    _strset_s
748#    _strtime.c
749#    _strtime_s
750#    _strtod_l.c
751#    _strtoi64.c
752#    _strtoi64_l.c
753#    _strtol_l
754#    _strtoui64.c strtoull
755#    _strtoui64_l.c
756#    _strtoul_l
757#    _strupr.c
758#    _strupr_l
759#    _strupr_s
760#    _strupr_s_l
761#    _strxfrm_l
762#    _swab.c
763#    _swprintf.c swprintf
764#    _swprintf_c
765#    _swprintf_c_l
766#    _swprintf_p_l
767#    _swprintf_s_l
768#    _swscanf_l.c
769#    _swscanf_s_l.c
770#    _sys_errlist
771#    _sys_nerr
772#    _tell.c
773#    -ret64 _telli64.c
774#    _tempnam.c
775#    _tempnam_dbg
776#    _time32.c
777#    _time64.c
778#    _timezone
779#    _tolower.c
780#    _tolower_l
781#    _toupper.c
782#    _toupper_l
783#    _towlower_l
784#    _towupper_l
785#    _tzname
786#    _tzset.c
787#    _ui64toa.c
788#    _ui64toa_s.c
789#    _ui64tow.c
790#    _ui64tow_s.c
791#    _ultoa.c
792#    _ultoa_s
793#    _ultow.c
794#    _ultow_s
795#    _umask.c
796#    _umask_s
797#    _ungetch.c
798#    _ungetwch
799#    _unlink.c
800#    _unloaddll.c
801#    _unlock.c
802#    _utime32.c
803#    _utime64.c
804#    _vcprintf
805#    _vcprintf_l
806#    _vcprintf_p
807#    _vcprintf_p_l
808#    _vcprintf_s
809#    _vcprintf_s_l
810#    _vcwprintf.c
811#    _vcwprintf_l
812#    _vcwprintf_p
813#    _vcwprintf_p_l
814#    _vcwprintf_s
815#    _vcwprintf_s_l
816#    _vfprintf_l
817#    _vfprintf_p
818#    _vfprintf_p_l
819#    _vfprintf_s_l
820#    _vfwprintf_l
821#    _vfwprintf_p
822#    _vfwprintf_p_l
823#    _vfwprintf_s_l
824#    _vprintf_l
825#    _vprintf_p
826#    _vprintf_p_l
827#    _vprintf_s_l
828#    _utime.c
829    _vscprintf.c
830#    _vscprintf_l
831#    _vscprintf_p_l
832    _vscwprintf.c
833#    _vscwprintf_l
834#    _vscwprintf_p_l
835    _vsnprintf.c
836#    _vsnprintf_c.c _vsnprintf
837#    _vsnprintf_c_l.c _vsnprintf_l
838#    _vsnprintf_l.c
839#    _vsnprintf_s.c
840#    _vsnprintf_s_l.c
841    _vsnwprintf.c
842#    _vsnwprintf_l.c
843#    _vsnwprintf_s.c
844#    _vsnwprintf_s_l.c
845#    _vsprintf_l
846#    _vsprintf_p.c
847#    _vsprintf_p_l
848#    _vsprintf_s_l
849#    _vswprintf.c
850#    _vswprintf_c.c _vsnwprintf
851#    _vswprintf_c_l.c _vsnwprintf_l
852#    _vswprintf_l.c
853#    _vswprintf_p_l.c _vsnwprintf_l
854#    _vswprintf_s_l.c
855#    _vwprintf_l
856#    _vwprintf_p
857#    _vwprintf_p_l
858#    _vwprintf_s_l
859#    _waccess.c
860#    _waccess_s.c
861#    _wasctime.c
862#    _wasctime_s
863#    _wassert
864#    _wchdir.c
865#    _wchmod.c
866#    _wcmdln
867#    _wcreat.c
868#    _wcscoll_l
869#    _wcsdup.c
870#    _wcsdup_dbg
871#    _wcserror.c
872#    _wcserror_s.c
873#    _wcsftime_l
874#    _wcsicmp.c
875#    _wcsicmp_l
876#    _wcsicoll.c
877#    _wcsicoll_l
878#    _wcslwr.c
879#    _wcslwr_l
880#    _wcslwr_s
881#    _wcslwr_s_l
882#    _wcsncoll.c
883#    _wcsncoll_l
884#    _wcsnicmp.c
885#    _wcsnicmp_l
886#    _wcsnicoll.c
887#    _wcsnicoll_l
888#    _wcsnset.c
889#    _wcsnset_s
890#    _wcsrev.c
891#    _wcsset.c
892#    _wcsset_s
893#    _wcstoi64.c
894#    _wcstoi64_l.c
895#    _wcstol_l
896#    _wcstombs_l
897#    _wcstombs_s_l.c
898#    _wcstoui64.c
899#    _wcstoui64_l.c
900#    _wcstoul_l
901#    _wcsupr.c
902#    _wcsupr_l
903#    _wcsupr_s.c
904#    _wcsupr_s_l
905#    _wcsxfrm_l
906#    _wctime.c
907#    _wctime32.c
908#    _wctime32_s
909#    _wctime64.c
910#    _wctime64_s
911#    _wctomb_l
912#    _wctomb_s_l
913#    _wctype
914#    _wenviron
915#    _wexecl.c
916#    _wexecle.c
917#    _wexeclp.c
918#    _wexeclpe.c
919#    _wexecv.c
920#    _wexecve.c
921#    _wexecvp.c
922#    _wexecvpe.c
923#    _wfdopen.c
924#    _wfindfirst.c
925#    _wfindfirst64
926#    _wfindfirsti64.c
927#    _wfindnext.c
928#    _wfindnext64
929#    _wfindnexti64.c
930#    _wfopen.c
931#    _wfopen_s.c
932#    _wfreopen.c
933#    _wfreopen_s
934#    _wfsopen.c
935#    _wfullpath.c
936#    _wfullpath_dbg
937#    _wgetcwd.c
938#    _wgetdcwd.c
939#    _wgetenv.c
940#    _wgetenv_s
941#    _winmajor
942#    _winminor
943#    _winput_s
944#    _winver
945#    _wmakepath.c
946#    _wmakepath_s.c
947#    _wmkdir.c
948#    _wmktemp.c
949#    _wmktemp_s
950#    _wopen.c
951#    _woutput_s
952#    _wperror.c
953#    _wpgmptr
954#    _wpopen.c
955#    _wprintf_l
956#    _wprintf_p
957#    _wprintf_p_l
958#    _wprintf_s_l
959#    _wputenv.c
960#    _wputenv_s
961#    _wremove.c
962#    _wrename.c
963#    _write.c
964#    _wrmdir.c
965#    _wscanf_l.c
966#    _wscanf_s_l.c
967#    _wsearchenv.c
968#    _wsearchenv_s
969#    _wsetlocale.c
970#    _wsopen.c
971#    _wsopen_s.c
972#    _wspawnl.c
973#    _wspawnle.c
974#    _wspawnlp.c
975#    _wspawnlpe.c
976#    _wspawnv.c
977#    _wspawnve.c
978#    _wspawnvp.c
979#    _wspawnvpe.c
980#    _wsplitpath.c
981#    _wsplitpath_s.c
982#    _wstat.c
983#    _wstati64.c
984#    _wstat64.c
985#    _wstrdate.c
986#    _wstrdate_s
987#    _wstrtime.c
988#    _wstrtime_s
989#    _wsystem.c
990#    _wtempnam.c
991#    _wtempnam_dbg
992#    _wtmpnam.c
993#    _wtmpnam_s
994#    _wtof.c
995#    _wtof_l.c
996#    _wtoi.c
997#    _wtoi64.c
998#    _wtoi64_l
999#    _wtoi_l
1000#    _wtol.c
1001#    _wtol_l
1002#    _wunlink.c
1003#    _wutime.c
1004#    _wutime32.c
1005#    _wutime64.c
1006#    _y0.c
1007#    _y1.c
1008#    _yn.c
1009#    abort.c
1010#    abs.c
1011#    acos.c
1012#    asctime.c
1013#    asctime_s
1014#    asin.c
1015#    atan.c
1016#    atan2.c
1017#    atexit # <-- keep this as an extern, thank you
1018#    atof.c
1019#    atoi.c
1020#    atol.c
1021#    bsearch.c
1022#    bsearch_s
1023#    btowc.c
1024#    calloc.c
1025#    ceil.c
1026#    clearerr.c
1027#    clearerr_s
1028#    clock.c
1029#    cos.c
1030#    cosh.c
1031#    ctime.c
1032#    difftime.c
1033#    div.c
1034#    exit.c
1035#    exp.c
1036#    fabs.c
1037#    fclose.c
1038#    feof.c
1039#    ferror.c
1040#    fflush.c
1041#    fgetc.c
1042#    fgetpos.c
1043#    fgets.c
1044#    fgetwc.c
1045#    fgetws.c
1046#    floor.c
1047#    fmod.c
1048#    fopen.c
1049#    fopen_s.c
1050#    fprintf.c
1051#    fprintf_s.c
1052#    fputc.c
1053#    fputs.c
1054#    fputwc.c
1055#    fputws.c
1056#    fread.c
1057#    free.c
1058#    freopen.c
1059#    freopen_s
1060#    frexp.c
1061#    fscanf.c
1062#    fscanf_s.c
1063#    fseek.c
1064#    fsetpos.c
1065#    ftell.c
1066#    fwprintf.c
1067#    fwprintf_s.c
1068#    fwrite.c
1069#    fwscanf.c
1070#    fwscanf_s.c
1071#    getc.c
1072#    getchar.c
1073#    getenv.c
1074#    getenv_s
1075#    gets.c
1076#    getwc.c
1077#    getwchar.c
1078#    gmtime.c
1079#    is_wctype.c
1080#    isalnum.c
1081#    isalpha.c
1082#    iscntrl.c
1083#    isdigit.c
1084#    isgraph.c
1085#    isleadbyte.c
1086#    islower.c
1087#    isprint.c
1088#    ispunct.c
1089#    isspace.c
1090#    isupper.c
1091#    iswalnum.c
1092#    iswalpha.c
1093#    iswascii.c
1094#    iswcntrl.c
1095#    iswctype.c
1096#    iswdigit.c
1097#    iswgraph.c
1098#    iswlower.c
1099#    iswprint.c
1100#    iswpunct.c
1101#    iswspace.c
1102#    iswupper.c
1103#    iswxdigit.c
1104#    isxdigit.c
1105#    labs.c
1106#    ldexp.c
1107#    ldiv.c
1108#    localeconv.c
1109#    localtime.c
1110#    log.c
1111#    log10.c
1112#    longjmp.c
1113#    malloc.c
1114#    mblen.c
1115#    mbrlen
1116#    mbrtowc
1117#    mbsdup_dbg
1118#    mbsrtowcs
1119#    mbsrtowcs_s
1120    mbstowcs.c
1121#    mbstowcs_s Not exported in 2k3 Sp1
1122    mbtowc.c
1123#    memchr.c
1124#    memcmp.c
1125#    memcpy.c
1126#    memcpy_s.c memmove_s
1127#    memmove.c
1128#    memmove_s.c
1129#    memset.c
1130#    mktime.c
1131#    modf.c
1132#    perror.c
1133#    pow.c
1134#    printf.c
1135#    printf_s.c
1136#    putc.c
1137#    putchar.c
1138#    puts.c
1139#    putwc.c fputwc
1140#    putwchar.c _fputwchar
1141#    qsort.c
1142#    qsort_s
1143#    raise.c
1144#    rand.c
1145#    rand_s.c
1146#    realloc.c
1147#    remove.c
1148#    rename.c
1149#    rewind.c
1150#    scanf.c
1151#    scanf_s.c
1152#    setbuf.c
1153#    _setjmp.c
1154#    setlocale.c
1155#    setvbuf.c
1156#    signal.c
1157#    sin.c
1158#    sinh.c
1159    sprintf.c
1160#    sprintf_s.c
1161#    sqrt.c
1162#    srand.c
1163#    sscanf.c
1164#    sscanf_s.c
1165#    strcat.c
1166#    strcat_s.c
1167#    strchr.c
1168#    strcmp.c
1169#    strcoll.c
1170    strcpy.c
1171#    strcpy_s.c
1172#    strcspn.c
1173#    strerror.c
1174#    strerror_s.c
1175#    strftime.c
1176    strlen.c
1177#    strncat.c
1178#    strncat_s
1179#    strncmp.c
1180#    strncpy.c
1181#    strncpy_s.c
1182#    strnlen.c
1183#    strpbrk.c
1184#    strrchr.c
1185#    strspn.c
1186#    strstr.c
1187#    strtod.c
1188#    strtok.c
1189#    strtok_s.c
1190#    strtol.c
1191    strtoul.c
1192#    strxfrm.c
1193#    swprintf.c
1194#    swprintf_s.c
1195#    swscanf.c
1196#    swscanf_s.c
1197#    system.c
1198#    tan.c
1199#    tanh.c
1200#    time.c
1201#    tmpfile.c
1202#    tmpfile_s
1203#    tmpnam.c
1204#    tmpnam_s
1205#    tolower.c
1206#    toupper.c
1207#    towlower.c
1208#    towupper.c
1209#    ungetc.c
1210#    ungetwc.c
1211#    utime
1212#    vfprintf.c
1213#    vfprintf_s.c
1214#    vfwprintf.c
1215#    vfwprintf_s.c
1216#    vprintf.c
1217#    vprintf_s.c
1218#    vsnprintf
1219#    vsprintf.c
1220#    vsprintf_s.c
1221#    vswprintf.c
1222#    vswprintf_s.c
1223#    vwprintf.c
1224#    vwprintf_s.c
1225#    wcrtomb
1226#    wcrtomb_s
1227#    wcscat.c
1228#    wcscat_s.c
1229#    wcschr.c
1230#    wcscmp.c
1231#    wcscoll.c
1232#    wcscpy.c
1233#    wcscpy_s.c
1234#    wcscspn.c
1235#    wcsftime.c
1236#    wcslen.c
1237#    wcsncat.c
1238#    wcsncat_s.c
1239#    wcsncmp.c
1240#    wcsncpy.c
1241#    wcsncpy_s.c
1242#    wcsnlen
1243#    wcspbrk.c
1244#    wcsrchr.c
1245#    wcsrtombs
1246#    wcsrtombs_s
1247#    wcsspn.c
1248#    wcsstr.c
1249#    wcstod.c
1250#    wcstok.c
1251#    wcstok_s.c
1252#    wcstol.c
1253    wcstombs.c
1254#    wcstombs_s.c Not exported in 2k3 Sp1
1255    wcstoul.c
1256#    wcsxfrm.c
1257#    wctob
1258    wctomb.c
1259#    wctomb_s
1260#    wprintf.c
1261#    wprintf_s.c
1262#    wscanf.c
1263#    wscanf_s.c
1264    static_construct.cpp
1265    static_init.c
1266)
1267
1268if(ARCH STREQUAL "i386")
1269    list(APPEND SOURCE_MSVCRT
1270        __getmainargs.c ##FIXME: Moved here because it doesn't work on x64
1271    #    _CIacos.c
1272    #    _CIasin.c
1273    #    _CIatan.c
1274    #    _CIatan2.c
1275    #    _CIcos.c
1276    #    _CIcosh.c
1277    #    _CIexp.c
1278    #    _CIfmod.c
1279    #    _CIlog.c
1280    #    _CIlog10.c
1281    #    _CIpow.c
1282    #    _CIsin.c
1283    #    _CIsinh.c
1284    #    _CIsqrt.c
1285    #    _CItan.c
1286    #    _CItanh.c
1287    #    _chkesp.c
1288    #    _EH_prolog.c
1289    #    __CxxFrameHandler.c
1290    #    __CxxFrameHandler2.c
1291    #    __CxxFrameHandler3.c
1292    #    __CxxLongjmpUnwind.c
1293    #    __p___argc.c
1294    #    __p___argv.c
1295    #    __p___initenv.c
1296    #    __p___mb_cur_max.c
1297    #    __p___wargv.c
1298    #    __p___winitenv.c
1299    #    __p__acmdln.c
1300    #    __p__amblksiz.c
1301    #    __p__commode.c
1302    #    __p__daylight.c
1303    #    __p__dstbias.c
1304    #    __p__environ.c
1305    #    __p__fileinfo.c
1306    #    __p__fmode.c
1307    #    __p__iob.c
1308    #    __p__mbcasemap.c
1309    #    __p__mbctype.c
1310    #    __p__osver.c
1311    #    __p__pctype.c
1312    #    __p__pgmptr.c
1313    #    __p__pwctype.c
1314    #    __p__timezone.c
1315    #    __p__tzname.c
1316    #    __p__wcmdln.c
1317    #    __p__wenviron.c
1318    #    __p__winmajor.c
1319    #    __p__winminor.c
1320    #    __p__winver.c
1321    #    __p__wpgmptr.c
1322    #    _adj_fdiv_m16i.c
1323    #    _adj_fdiv_m32.c
1324    #    _adj_fdiv_m32i.c
1325    #    _adj_fdiv_m64.c
1326    #    _adj_fdiv_r.c
1327    #    _adj_fdivr_m16i.c
1328    #    _adj_fdivr_m32.c
1329    #    _adj_fdivr_m32i.c
1330    #    _adj_fdivr_m64.c
1331    #    _adj_fpatan.c
1332    #    _adj_fprem.c
1333    #    _adj_fprem1.c
1334    #    _adj_fptan.c
1335    #    _adjust_fdiv
1336    #    _except_handler2.c
1337    #    _except_handler3.c
1338    #    _except_handler4_common.c
1339    #    _ftol.c
1340    #    _ftol2.c _ftol
1341    #    _ftol2_sse.c
1342    #    _global_unwind2.c
1343    #    _inp.c
1344    #    _inpd.c
1345    #    _inpw.c
1346    #    _local_unwind2.c
1347    #    _local_unwind4.c
1348    #    _safe_fdiv.c
1349    #    _safe_fdivr.c
1350    #    _safe_fprem.c
1351    #    _safe_fprem1.c
1352    #    _seh_longjmp_unwind4.c
1353    #    _seh_longjmp_unwind.c
1354    #    -norelay _setjmp3.c
1355    )
1356elseif(ARCH STREQUAL "amd64")
1357    list(APPEND SOURCE_MSVCRT
1358    #    __C_specific_handler
1359    #    _setjmp.c
1360    #    _setjmpex.c
1361    #    _local_unwind.c
1362    #    longjmp.c
1363    #    __C_specific_handler.c
1364    #    _setjmpex.c
1365    #    ceilf.c
1366    #    cosf.c
1367    #    floorf.c
1368    #    fmodf.c
1369    #    logf.c
1370    #    powf.c
1371    #    sinf.c
1372    #    sqrtf.c
1373    )
1374endif()
1375
1376# Startup code doesn't go together well with the static CRT... too much __imp_
1377#add_executable(static_crt_apitest testlist.c ${SOURCE_MSVCRT})
1378#target_compile_definitions(static_crt_apitest PRIVATE TEST_STATIC_CRT)
1379#target_link_libraries(static_crt_apitest ${PSEH_LIB} crt wine)
1380#set_module_type(static_crt_apitest win32cui)
1381#add_importlibs(static_crt_apitest kernel32 ntdll)
1382#add_rostests_file(TARGET static_crt_apitest)
1383
1384#spec2def(static_crt_dll_startup.dll dll_startup.spec)
1385#add_library(static_crt_dll_startup MODULE
1386#    dll_startup.cpp
1387#    ${CMAKE_CURRENT_BINARY_DIR}/static_crt_dll_startup.def)
1388#target_link_libraries(static_crt_dll_startup crt)
1389#set_module_type(static_crt_dll_startup win32dll)
1390#add_importlibs(static_crt_dll_startup kernel32 ntdll)
1391#add_rostests_file(TARGET static_crt_dll_startup)
1392
1393add_executable(msvcrt_crt_apitest testlist.c ${SOURCE_MSVCRT})
1394target_compile_definitions(msvcrt_crt_apitest PRIVATE TEST_MSVCRT)
1395target_link_libraries(msvcrt_crt_apitest wine ${PSEH_LIB})
1396set_module_type(msvcrt_crt_apitest win32cui)
1397add_importlibs(msvcrt_crt_apitest msvcrt kernel32 ntdll)
1398add_rostests_file(TARGET msvcrt_crt_apitest)
1399
1400spec2def(msvcrt_crt_dll_startup.dll dll_startup.spec)
1401add_library(msvcrt_crt_dll_startup MODULE
1402    dll_startup.cpp
1403    ${CMAKE_CURRENT_BINARY_DIR}/msvcrt_crt_dll_startup.def)
1404set_module_type(msvcrt_crt_dll_startup win32dll)
1405add_importlibs(msvcrt_crt_dll_startup msvcrt kernel32 ntdll)
1406add_rostests_file(TARGET msvcrt_crt_dll_startup)
1407