reactos/sdk/lib/crt
Pierre Schweitzer 2dfe5e3f46
[CRT] Reimplement qsort() using FreeBSD implementation.
Our implementation had a bug that could be triggered while
building our USBD library on ReactOS: the compare function
could be called with a NULL pointer instead of a valid value.

With this bug fixed (and the cmd hack in CORE-14648), ReactOS
can totally selfhost :-)! I was able to build LiveCD and BootCD
without any trouble, crash, deadlock or whatever.
(Next step: having a buildbot slave hosted on ReactOS ;-)).

Enjoy: https://twitter.com/HeisSpiter/status/1002880397103988737

CORE-14680
2018-06-02 13:56:42 +02:00
..
conio
direct
except
float
include [CRT] Update file descriptor handling to match Wine (3/7). CORE-14504 2018-03-26 13:00:15 +02:00
locale
math
mbstring
mem
misc [CRT] Use MAX_PATH for buffer meant to contain an arbitrary path 2017-10-23 14:44:38 +02:00
printf [CRT] Implement the missing CRT _sc(w)printf() functions. CORE-14497 2018-03-23 22:30:18 +01:00
process
search
setjmp
signal
startup [CRT:STARTUP] Fix a Clang-Cl warning about GS_ExceptionPointers 2018-02-10 18:13:12 +01:00
stdio [CRT] Fixed _tstat64 which wrongly set executable bits on files. CORE-10904 2018-03-26 13:41:27 +02:00
stdlib [CRT] Reimplement qsort() using FreeBSD implementation. 2018-06-02 13:56:42 +02:00
string
sys_stat
time [CRT] Update file descriptor handling to match Wine (3/7). CORE-14504 2018-03-26 13:00:15 +02:00
wine
wstring
CMakeLists.txt
crt.cmake [CRT] Implement the missing CRT _sc(w)printf() functions. CORE-14497 2018-03-23 22:30:18 +01:00
libcntpr.cmake
moldname-msvcrt.def
msvcrtex.cmake
oldnames-msvcrt.S
oldnames.cmake
precomp.h
README.txt

Big chunks of this CRT library are taken from Wine's msvcrt implementation,
you can find a list of synced files in README.WINE file.

Notes:
1. When syncing, omit MSVCRT_ prefix where possible, Wine has to keep this
because they are linking with *both* original crt, and ms crt implementation.
ReactOS has the only CRT, so no need to make distinct functions.
2. ReactOS compiles two versions of the CRT library, one for usermode
(called just "crt"), and one version for kernelmode usage (called "libcntpr").
In order to separate the code, you can use #ifdef _LIBCNT_ for libcntpr code.