Timo Kreuzer
7bb12665d6
[UCRT] Add CMake files
2025-01-16 14:18:53 +02:00
Timo Kreuzer
ef440b9aef
[UCRT] Add a hack for a clang bug
...
See CORE-19902
2025-01-16 14:18:53 +02:00
Timo Kreuzer
2eb3149565
[UCRT] Make includes unix compatible
2025-01-16 14:18:53 +02:00
Timo Kreuzer
90dad446b7
[UCRT] Fix GCC build of __crt_char_traits
...
This is a workaround for GCC. It will disable debugging for tdupenv_s_crt.
How it works on MSVC? Magic.
2025-01-16 14:18:53 +02:00
Timo Kreuzer
693f9f51a0
[UCRT] Hack some template code, so that retarded compilers can handle it
2025-01-16 14:18:53 +02:00
Timo Kreuzer
f9dc185ede
[UCRT] Use a C cast instead of const_cast for GCC
...
This is because GCC will generate errors for both const_cast and static_cast depending on the template parameter:
- With const_cast: error: invalid 'const_cast' from type 'std::nullptr_t' to type 'const wchar_t**'
- With static_cast: error: invalid 'static_cast' from type 'wchar_t** const' to type 'const wchar_t**'
2025-01-16 14:18:53 +02:00
Timo Kreuzer
47e3f49e52
[UCRT] No __declspec(spectre(nomitigation)) for GCC/Clang
2025-01-16 14:18:53 +02:00
Timo Kreuzer
97e20ef342
[UCRT] Fix GCC/Clang build of SSE2/AVX code
...
On GCC the code using extended ISA cannot be inlined and must either be marked with a function attribute or compiled with the proper target options ('-mavx2' on the command line or '#pragma GCC target("avx2")' inside the code)
2025-01-16 14:18:53 +02:00
Timo Kreuzer
e98e9000c7
[UCRT] Make SEH blocks ReactOS PSEH compatible
2025-01-16 14:18:53 +02:00
Timo Kreuzer
7bb9f6bf28
[UCRT] Fix GCC/Clang build of enum_system_locales_ex_nolock
...
Add static function for Clang.
Add missing __stdcall in a lambda for GCC.
MSVC does this automagically. See https://devblogs.microsoft.com/oldnewthing/20150220-00/?p=44623 .
2025-01-16 14:18:53 +02:00
Timo Kreuzer
2cc6699f0d
[UCRT] Silence warning about returning noreturn function
2025-01-16 14:18:53 +02:00
Timo Kreuzer
a21a206c89
[UCRT] Add workaround for va_arg warning about type promotion
2025-01-16 14:18:53 +02:00
Timo Kreuzer
faedd8ff75
[UCRT] Use GCC inline assembler
...
Clang requires the asm to be split, otherwise it complains that it doesn't have enough registers.
2025-01-16 14:18:53 +02:00
Timo Kreuzer
0cdde63c57
[UCRT] Add casts to make GCC happy
2025-01-16 14:18:53 +02:00
Timo Kreuzer
dbd58d7666
[UCRT] Fix GCC/Clang compilation of template specializations
2025-01-16 14:18:53 +02:00
Timo Kreuzer
c15b618a17
[UCRT] Add using declatarions for template base-classes (GCC compatibility)
2025-01-16 14:18:53 +02:00
Timo Kreuzer
5ba105e9b5
[UCRT] Add some missing typename for GCC compatibility
2025-01-16 14:18:53 +02:00
Timo Kreuzer
90fb8391fc
[UCRT] Fix shadowing template parameters
2025-01-16 14:18:53 +02:00
Timo Kreuzer
482f318a23
[UCRT] Fix template specialization
2025-01-16 14:18:53 +02:00
Timo Kreuzer
7a764cf610
[UCRT] Fix invalid storage type specification
2025-01-16 14:18:53 +02:00
Timo Kreuzer
4de4349109
[UCRT] Fix non-standard literal suffixes
2025-01-16 14:18:53 +02:00
Timo Kreuzer
ffd69754f9
[UCRT] Fix non-standard extern "C" usage
2025-01-16 14:18:53 +02:00
Timo Kreuzer
9ed5151de9
[UCRT] Fix benign typo ('\0' instead of nullptr)
2025-01-16 14:18:53 +02:00
Timo Kreuzer
f8e7a249ba
[UCRT] Fix a signed/unsigned comparison
2025-01-16 14:18:53 +02:00
Timo Kreuzer
2d753d95fb
[UCRT] Fix multiple missing dereferences
...
This is a bug in MS UCRT code. MSVC allows to check a pointer to be > 0, GCC emits a warning.
2025-01-16 14:18:53 +02:00
Timo Kreuzer
d622c4a7a0
[UCRT] Fix a typo/bug in __acrt_mbs_to_wcs_cp_array
2025-01-16 14:18:53 +02:00
Timo Kreuzer
48d8d198b2
[UCRT] Add missing line breaks at end of file
2025-01-16 14:18:53 +02:00
Timo Kreuzer
995e16d4d4
[UCRT] Add missing headers
...
These are minimal definitions, just enough to make things compile.
2025-01-16 14:18:53 +02:00
Timo Kreuzer
04e0dc4a7a
[UCRT] Import Microsoft.Windows.SDK.CRTSource version 10.0.22621.3
...
Imported from https://www.nuget.org/packages/Microsoft.Windows.SDK.CRTSource/10.0.22621.3
License: MIT
2025-01-16 14:18:53 +02:00